Laravel:问我"我登录了吗?"来自android(不是浏览器)

时间:2014-05-08 03:11:42

标签: php android authentication mobile laravel

我正在使用Laravel框架构建RESTful API,并且它在浏览器上运行良好。 问题是,我还打算用它来从Android设备访问数据库。

通过移动设备,我能够登录"进入我的申请。也就是说,我能够将用户名和密码发送到API,它将使用这样的JSON进行响应

{'action'=>'login', 'status'=>'success'}

到目前为止一直很好,现在,说用户离开我的应用程序并稍后再回来,我怎么知道他们的会话是否仍然有效?

Laravel中的一种方法叫做Auth :: check:

if (Auth::check())
{
    // The user is logged in...
}

但这总是会失败!这有点意义,我没有发送任何东西到服务器说"嘿!它又是我" ...对吗?

我想我的问题归结为,浏览器发送给API的内容是什么,以便识别它?(我不认为这是用户和密码,如每次你想提出请求时发送这个都是非常不安全的,我是对的吗?)

2 个答案:

答案 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中以用于移动应用程序。