我正在Yii 1.x中构建一个API,它将与移动应用程序一起使用.部分过程涉及使用以下JSON请求登录(使用用户名和密码): -
//使用用户名和密码发送的请求
{
"request" : {
"model" : {
"username" : "bobbysmith",
"password" : "mystrongpassword"
}
}
}
Run Code Online (Sandbox Code Playgroud)
//如果成功登录,则返回以下响应
{
"response": {
"code": 200,
"message": "OK",
"model": {
"timestamp": 1408109484,
"token": "633uq4t0qdtd1mdllnv2h1vs32"
}
}
}
Run Code Online (Sandbox Code Playgroud)
此令牌非常重要 - 一旦用户登录应用程序,我希望他们可以访问要求他们登录的其他页面.我希望移动应用程序存储此令牌,如果相同的633uq4t0qdtd1mdllnv2h1vs32令牌是在任何后续请求中发现它将接受此作为经过身份验证的请求(对于此用户'bobbysmith').
我有点不确定如何最好地做到这一点,我做了一些研究,oAuth已被提及几次,以及通过HTTPS的基本身份验证.
所以简而言之......
任何人都可以解释实现这一目标的最佳方法吗?如果我所说的内容不是100%明确的,请告诉我,我会提供更多信息.
当我使用PHP时,Yii 1.x解决方案是理想的,因为这是使用当前API构建的.
概括地说,该应用可确保到服务器的每个请求包括在所述有效载荷或报头,以便此令牌可以被检索令牌每随后的后,一旦退出该令牌被简单地移除或设置为空/空
我正在使用 yii2 实现一个宁静的 api,我想知道如何使用户的访问令牌过期
在我的登录控制器中
if($model->login()){
return [
"access_token' => Yii::$app->user->identity->getAuthKey(),
];
}
Run Code Online (Sandbox Code Playgroud)
现在在我的其他控制器中正在实现这种行为
class DefaultController extends Controller {
$behaviors['authenticator'] = [
'class' => CompositeAuth::className(),
'authMethods' => [
QueryParamAuth::className(),
],
];
}
Run Code Online (Sandbox Code Playgroud)
每当 iu 在我的 url 中使用访问令牌发送我的请求时,它都会起作用
但现在的问题是访问令牌不会过期
如何设置访问令牌的到期时间?