【问题标题】:Laravel Passport: Is it possible to set expire_at for each access_token separately?Laravel Passport:是否可以分别为每个 access_token 设置 expire_at ?
【发布时间】:2017-10-21 16:40:54
【问题描述】:

Laravel Passport 确实通过

为访问令牌设置了 expire_at
Passport::tokensExpireIn(Carbon::now()->addDays(15));

Passport::refreshTokensExpireIn(Carbon::now()->addDays(30));

在 AuthServiceProvider 的启动方法中

但我想分别为每个 access_token 设置 expire_at。

在 Laravel Passport 中有什么办法吗?

【问题讨论】:

    标签: laravel laravel-passport


    【解决方案1】:

    您可以使用DB::table('oauth_access_tokens') 并自己更新expires_at,而无需 Passport 为您做任何事情。

    只需将您的 ->where 语句添加到查询构建器以定位您想要的令牌,并进行相应更新。

    【讨论】:

    • 这可能是最终的解决方案,需要一个额外的查询。但是,我想看看我是否可以在 Laravel Passport 中处理这个问题。正如我所探索的,有一个静态属性Passport::$tokensExpireAt,Passport 使用它来在oauth_access_tokens 中设置expires_at。但是这个属性只在AuthServiceProviderboot方法内有效
    • @Mehrud 查询量是一样的;因为护照会在引擎盖下做同样的事情。此外,我不知道有任何内置的 Passport 功能可以满足您的需求。如果您确实找到它,请随时在此处发表评论以获取可见性。
    【解决方案2】:

    您可以轻松地在代码上方添加这一行:

    Passport::tokensExpireIn(YOUR_CUSTOM_TIME);
    

    但记得在那之后改回来,因为expires_at 是一个static 变量。

    【讨论】:

      猜你喜欢
      • 2021-06-06
      • 2016-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 2014-02-01
      相关资源
      最近更新 更多