【问题标题】:How to change expiration date of access token Laravel Passport如何更改访问令牌 Laravel Passport 的到期日期
【发布时间】:2020-04-15 21:41:07
【问题描述】:

我正在尝试更改访问令牌 Laravel Passport 的到期日期。

这是我尝试过的:

AuthServiceProvider

public function boot(){
    $this->registerPolicies();

    Passport::routes();

    Passport::tokensExpireIn(Carbon::now()->addDays(1));
    Passport::refreshTokensExpireIn(Carbon::now()->addDays(2));
    Passport::personalAccessTokensExpireIn(Carbon::now()->addMonths(1));
}

用户控制器

public function login() {
    $credentials = [
        'email' => request('email'),
        'password' => request('password')
    ];
    if (Auth::attempt($credentials)) {
        $success['token'] = Auth::user()->createToken('MyApp')->accessToken;
        $success['name'] = Auth::user()->name;

        return response()->json(['success' => $success]);
    }
    return response()->json(['error' => 'Unauthorized'], 401);
}

但它没有用。数据库中expires_at字段的过期日期没有变化,默认还是一年。

我正在尝试这样做,因为我想在访问令牌过期时重定向到登录表单。我该怎么做?

我也不确定刷新令牌会发生什么,它会返回另一个访问令牌并且用户不需要授权吗?

【问题讨论】:

    标签: laravel access-token restful-authentication laravel-passport


    【解决方案1】:

    您正在创建一个属于用户的个人访问令牌

    个人访问令牌的默认到期日期为 1 年。

    看看你的代码,我很确定这个命令应该可以完成工作:

    Passport::personalAccessTokensExpireIn(Carbon::now()->addMonths(1));
    

    在获取令牌时,仔细检查数据库中的 expire_at 列和响应中的 expires_in 值。它显示令牌存在的秒数。

    【讨论】:

      猜你喜欢
      • 2019-08-30
      • 2019-01-10
      • 2016-08-27
      • 2019-06-09
      • 2019-10-16
      • 2017-07-25
      • 1970-01-01
      • 2021-03-30
      • 2018-09-28
      相关资源
      最近更新 更多