我正在使用 Ionic 在 Codeigniter/Ion_Auth/codeigniter-restclient 之上构建登录系统,当我尝试从“离子服务器”登录时,登录有效,但下一个对 logged_in() 方法的 api 请求返回 false。
当我将浏览器指向 www 文件夹时,同样的事情也能正常工作。
所以这里是一步一步的问题:
运行离子服务
您会看到登录表单(http://localhost:8100/#/app/login)
输入电子邮件并通过
其余 api 返回“登录成功”
$state.go('app.profile') 工作并重定向到http://localhost:8100/#/app/profile
REST get api/logged_in 返回 false,我重定向到登录页面
如果我在常规浏览器中执行相同操作,则步骤 1 变为:打开浏览器并转到http://localhost:8888/App/www/#/app/login,在步骤 6 REST get api/logged_in 返回 true 而我不这样做'不要被重定向到登录页面,我留在个人资料页面上。
代码是一样的。所以我的猜测是,也许 ion_auth 没有得到它想要的 cookie,或者会话被重置。我现在不确定问题是什么。这是我的第一个 Ionic/App 项目,所以我可能会遗漏一些关于使用可在浏览器中运行的代码从移动应用程序进行身份验证的正确方法
谢谢
更新:似乎在使用“离子服务器”窗口时,对 API 的每个请求都会触发一个新会话。新会话存储在数据库中,ion_auth 针对最后一个会话测试已登录的登录,其中不包含登录详细信息。