Laravel Sanctum令牌过期时间设置无效问题求助
Laravel Sanctum令牌过期时间不生效问题解决
核心问题:配置项拼写错误
你在sanctum.php里写的'exparation' => 525600是拼写错误,正确的配置项名称是'expiration',少了字母i。这个拼写错误会导致Sanctum无法读取到你的过期时间配置,所以生成的令牌expires_at字段始终为null。
修复步骤
- 修正配置项名称:打开
config/sanctum.php,将错误的配置项改为正确写法:
'expiration' => 525600,
- 清除配置缓存:再次执行命令确保配置生效:
php artisan config:clear
可选:手动指定令牌过期时间
如果需要更灵活的过期时间控制,也可以在生成令牌时直接手动设置,不依赖全局配置:
$token = $user->createToken($request->email)->expiresAt(now()->addMinutes(525600));
验证修复
重新调用登录接口,检查数据库personal_access_tokens表的expires_at字段,此时应该会正确显示令牌的过期时间。
内容的提问来源于stack exchange,提问作者Moemen Hussein
相关产品推荐
相关产品推荐

