我正在使用Laravel框架构建RESTful API,并且它在浏览器上运行良好。 问题是,我还打算用它来从Android设备访问数据库。
通过移动设备,我能够登录"进入我的申请。也就是说,我能够将用户名和密码发送到API,它将使用这样的JSON进行响应
{'action'=>'login', 'status'=>'success'}
到目前为止一直很好,现在,说用户离开我的应用程序并稍后再回来,我怎么知道他们的会话是否仍然有效?
Laravel中的一种方法叫做Auth :: check:
if (Auth::check())
{
// The user is logged in...
}
但这总是会失败!这有点意义,我没有发送任何东西到服务器说"嘿!它又是我" ...对吗?
我想我的问题归结为,浏览器发送给API的内容是什么,以便识别它?(我不认为这是用户和密码,如每次你想提出请求时发送这个都是非常不安全的,我是对的吗?)
答案 0 :(得分:1)
这是我最终做的事情,
事实证明,您不必担心Cookie,Android会为您管理它们。您所要做的就是确保为所有请求使用相同的http客户端
private static DefaultHttpClient httpClient = new DefaultHttpClient();
所以,我创建了一个singleton类并将我的httpClient放在那里。
每次创建一个新的httpClient就像关闭浏览器并在计算机上再次打开它一样。
答案 1 :(得分:0)
为浏览器提供了一个会话cookie,Laravel使用该cookie来识别经过身份验证的用户。它读取该cookie并根据会话中存储的内容进行检查。您的应用不会被视为已通过身份验证,因为您的Android应用尚未向Laravel提供此Cookie。您可能希望将某种OAuth解决方案集成到Laravel中以用于移动应用程序。