【发布时间】:2014-10-09 06:02:15
【问题描述】:
我正在 Yii 1.x 中构建一个 API,它将与移动应用程序一起使用。该过程的一部分涉及使用以下 JSON 请求登录(使用用户名和密码):-
// 使用用户名和密码发送请求
{
"request" : {
"model" : {
"username" : "bobbysmith",
"password" : "mystrongpassword"
}
}
}
//如果登录成功返回如下响应
{
"response": {
"code": 200,
"message": "OK",
"model": {
"timestamp": 1408109484,
"token": "633uq4t0qdtd1mdllnv2h1vs32"
}
}
}
此令牌非常重要 - 一旦用户登录应用程序,我希望他们能够访问需要他们登录的其他页面。我希望移动应用程序存储此令牌并且如果相同633uq4t0qdtd1mdllnv2h1vs32 令牌在任何后续请求中发现,它将接受此作为经过身份验证的请求(对于此用户“bobbysmith”)。
我有点不确定如何最好地做到这一点,我已经做了一些研究,并且可以多次提到 oAuth,以及通过 HTTPS 进行的基本身份验证。
简而言之,这...
- 在移动应用主页上,用户使用其用户名和密码正确登录,这会向 API 发送请求。
- 这将返回带有当前时间戳和所有重要令牌的成功响应(如上所示)。
- 同一用户转到另一个应用页面/视图,其中 a) 需要此令牌,并且 b) 如果匹配,则验证该用户身份(例如,以便他们可以编辑该帐户等)
- 一旦用户单击“注销”,此令牌就会被删除(并且可以再访问我的帐户等) - 本质上是一个基于令牌的身份验证系统。
谁能解释实现这一目标的最佳方法?如果我所说的不是 100% 清楚,请告诉我,我会提供更多信息。
当我使用 PHP 时,Yii 1.x 解决方案是理想的,因为这是当前 API 所使用的构建。
简而言之,应用程序确保对服务器的每个请求都在有效负载或标头中包含令牌,因此可以在每个后续帖子中检索此令牌,一旦注销,此令牌将被简单地删除或设置为空/空
【问题讨论】:
标签: php rest yii access-token restful-authentication