0

我目前正在研究基于 yii2 的 Rest api。我使用不记名令牌进行用户身份验证。让我解释一下要求。

1)第一个用户使用他们的凭据从外部 php 应用程序进行身份验证。

2)他/她得到一个访问令牌。

3) 每个后续请求都是使用此访问令牌进行的。

public static function findIdentityByAccessToken($token, $type = null)
{
    return static::findOne(['auth_key' => $token]);
}

这是我开始思考的地方。我没有找到访问令牌的任何到期时间。真的需要吗?如果是,我该如何存档?提前致谢。

4

1 回答 1

4

你的问题有点宽泛,但我会尝试帮助你的思考过程。

我没有找到访问令牌的任何到期时间。真的需要吗?

这取决于您的要求。您是否希望您的用户在第一次身份验证后能够无限期地访问您的 API?您希望您的用户经常更新他们的令牌吗?

我会推荐后者,因为它限制了潜在攻击者使用受损访问令牌的时间。

如果是,我该如何存档?

一种选择是将包含到期日期的日期时间的字段添加到与您的身份类别对应的数据库表中,并检查这在实施中是否仍然有效findIdentityByAccessToken()

public static function findIdentityByAccessToken($token, $type = null)
{
    return static::findOne([
        'AND', 
        ['auth_key' => $token], 
        ['>=', 'token_expire', new \yii\db\Expression('NOW()')]
    ]);
}
于 2017-03-13T13:12:43.010 回答