[英]Laravel Sanctum tokenCan method on User model returns false despite correct ability
[英]Why is Laravel 8 sanctum tokenCan not working?
我在数据库中添加了一个具有“user:addkeys”功能的键。
在我的routes/api.php
,我将创建新密钥的路线更改为:
Route::middleware('auth:sanctum')->post('/tokens/create', function (Request $request) {
$user = User::find($request->user_id);
$retval = [];
if ($user->tokenCan('user:addkeys')) {
$capabilities = explode(',',$request->capabilities);
$token = $user->createToken($request->token_name, $capabilities);
return ['token' => $token->plainTextToken];
}
return $retval;
});
当我使用数据库中存在的令牌通过 Postman 运行 url 时,我能够通过 auth:sanctum 但 tokenCan 一直返回 false。
知道为什么吗?
找到了解决方案。 而不是$user = User::find($request->user_id)
我现在使用$user = $request->user()
我认为 tokenCan() 仅适用于请求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.