php - Laravel Passport token 过期方法不起作用

标签 php laravel access-token laravel-passport

我使用护照对我的 API 进行身份验证 我运行此命令来安装护照:

php artisan passport:install --force

并使用以下代码生成 token :

$objToken = $user->createToken('Token');
$strToken = $objToken->accessToken;
$expiration = $objToken->token->expires_at->diffForHumans();

return response()->json([
     token' => $strToken,
     'ExpireTime' => $expiration,
], 200);

我发现我的 token 生命周期是一年,我只想将expire_at列设置为1小时 我阅读官方文档并向AuthServiceProvider添加以下代码:

Passport::tokensExpireIn(now()->addDays(15));
Passport::refreshTokensExpireIn(now()->addDays(30));

但是这些代码不起作用,当我记录 expire_at 时,这仍然是一年 请帮助我更改 token 的到期时间。 谢谢很多:)

最佳答案

您正在尝试创建个人访问 token

// Passport::tokensExpireIn(now()->addDays(15));
// Passport::refreshTokensExpireIn(now()->addDays(30));


# Get or set when personal access tokens expire.
Passport::personalAccessTokensExpireIn(now()->addHour(1));

结果:

array:2 [
  "token" => "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...."
  "ExpireTime" => "59 minutes from now"
]

更新

对于 Laravel < v5.7

Personal access tokens are always long-lived. Their lifetime is not modified when using the tokensExpireIn or refreshTokensExpireIn methods.

关于php - Laravel Passport token 过期方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59454486/

相关文章:

php - 如何将数组值保存为mysql数据库中的每条记录

php - 测试 Laravel 5.2 时不要移动原始文件

Laravel 测试 API 端点 - 缺少 POST 参数

php - Laravel:无需再次选择文件即可更新数据

PHP:双重输出 php 错误/警告/通知

php - mysql_query 不返回数据

angularjs - 将访问 token 添加到 Angular js 中的每个请求 header

access-token - 将 Spring 的 Token Store 实现为 MySQL 文件的步骤是什么?

javascript - AngularJS - 处理刷新 token ?

php - 检索维基百科文章的第一段