【问题标题】:Laravel passport Authorization token expire on generating new tokenLaravel 护照授权令牌在生成新令牌时过期
【发布时间】:2018-04-11 08:21:40
【问题描述】:

我正在使用 laravel 5.5 和 API 路由的护照身份验证。我正在使用不记名令牌。 问题是旧生成的令牌被接受而不是未经身份验证。 步骤:

  • 创建一个不记名令牌。用它。它工作正常。
  • 无需注销即可创建另一个令牌,它工作正常。
  • 现在,如果我使用第一个创建的令牌,它也可以工作。它不应该工作,但它被接受。

我有什么办法可以做到这一点? 提前致谢。

【问题讨论】:

    标签: laravel api oauth-2.0 laravel-passport


    【解决方案1】:

    一种可能的解决方案是: 在创建新令牌之前检查是否存在旧令牌并删除该令牌。为此:

    创建一个名为 OauthAccessToken

    的模型

    如下更新你的用户模型

    /**
     * 1:n zu access token, we need to logout users
     *
     * @return \Illuminate\Database\Eloquent\Relations\HasMany
     */
    public function accessTokens()
    {
        return $this->hasMany(OauthAccessToken::class);
    }
    

    现在您可以检查并删除用户的所有令牌

    if ($user->accessTokens->count() > 0) {
        $user->accessTokens()->delete();
    }
    

    【讨论】:

    • 嗨,Matz,谢谢。我得到了这个并从'oauth_access_tokens'中删除了令牌。它工作正常。我们不能通过刷新令牌来实现吗?
    猜你喜欢
    • 2020-12-18
    • 2019-05-12
    • 2019-08-13
    • 2019-12-22
    • 2019-05-15
    • 2020-02-04
    • 1970-01-01
    • 2019-11-17
    • 2017-10-05
    相关资源
    最近更新 更多