laravel - 如何更改访问 token Laravel Passport 的到期日期

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

我正在尝试更改访问 token 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));
}

用户 Controller

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 字段的过期日期没有更改,默认情况下仍然是一年。

我正在尝试执行此操作,因为我想在访问 token 过期时重定向到登录表单。我该怎么做?

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

最佳答案

您正在创建属于用户的个人访问 token

个人访问 token 的默认有效期为 1 年。

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

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

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

关于laravel - 如何更改访问 token Laravel Passport 的到期日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59474992/

相关文章:

laravel - Composer 找不到配置文件

php - 在 Laravel 5 中创建编辑模式

azure - 从 VSTS 获取 Azure AD 访问 token ?

java - 如何重命名 Struts 2 token 参数

oauth - Shopify OAuth 身份验证不会返回永久访问 token

php - iphone 应用程序和第三台服务器中的 FB 身份验证

laravel - 使用 laravel 显示当月注册用户列表

email - 拉维尔 5 : passing variable into subject

c# - 在 MVC 2 中验证 REST 请求

javascript - 保护我的 Node.js 应用程序的 REST API?