我目前正在开发基于yii2的Rest api。我使用bearer token进行用户身份验证。我解释了这个要求。
1)第一个用户使用他们的凭据从外部php应用程序进行身份验证。
2)他/她获得了访问令牌。
3)使用此访问令牌进行每个后续请求。
_id
这是我开始思考的地方。我没有找到访问令牌的任何到期时间。真的需要吗?如果是的话我怎么能归档那个?提前谢谢。
答案 0 :(得分:2)
您的问题有点广泛,但我会尝试帮助您的思维过程。
我没有找到访问令牌的任何到期时间。真的需要吗?
这取决于您的要求。您是否希望您的用户在第一次进行身份验证后能够无限期地访问您的API?您希望用户经常更新其令牌吗?
我会推荐后者,因为它限制了潜在攻击者使用受损访问令牌的时间。
如果是,我该怎么归档?
一种选择是将包含到期日期的日期时间的字段添加到与您的身份类对应的数据库表中,并检查这在findIdentityByAccessToken()
的实现中是否仍然有效
public static function findIdentityByAccessToken($token, $type = null)
{
return static::findOne([
'AND',
['auth_key' => $token],
['>=', 'token_expire', new \yii\db\Expression('NOW()')]
]);
}