【问题标题】:JWT token revoke for specific user on deactivate account在停用帐户时为特定用户撤销 JWT 令牌
【发布时间】:2021-03-03 15:34:32
【问题描述】:

到目前为止,我已经创建了一个数据库

user_id,token.

它存储所有登录用户的令牌。

我已通过 user_id 从数据库中获取所有令牌。然后循环遍历,

JWTAuth::invalidate(new \Tymon\JWTAuth\Token($token->token));

它不工作。 第三方包:Tymon Laravel JWT

如何实现这个功能?

【问题讨论】:

  • 您是否使用任何第三方软件包?如果是,我们应该知道是哪个
  • 泰蒙 laravel @WaskaChaduneli
  • @MdShifatulIslam 为什么不能在停用该用户帐户时重置token 列,因为每次用户登录都会有新的 JWT 令牌。
  • @MdShifatulIslam,您可以创建一个中间件来检查帐户是否已停用,然后添加JWTAuth::invalidate(new \Tymon\JWTAuth\Token($token->token)); 使用户无效。如果停用的用户尝试访问路由,则执行此操作,他将无法访问。
  • @HarpalSingh 是的,我做到了。看起来不错。

标签: php laravel jwt-auth


【解决方案1】:

只需在此处添加 Harpal singh 的评论。它解决了我的问题。

"您可以创建一个中间件来检查帐户是否被停用然后添加

JWTAuth::invalidate(new \Tymon\JWTAuth\Token($token->token)); 

使用户无效。如果停用的用户尝试访问路由,则执行此操作,他将无法访问。"

【讨论】:

    【解决方案2】:

    经过长时间的跟踪源代码。我发现这行得通。

    JWTAuth::manager()->invalidate(new Token({YourToken}))
    

    【讨论】:

      猜你喜欢
      • 2020-06-02
      • 2019-09-29
      • 2018-09-21
      • 2015-11-02
      • 2020-10-20
      • 2016-10-21
      • 2019-09-24
      • 1970-01-01
      相关资源
      最近更新 更多