繁体   English   中英

为什么Laravel 8 圣所令牌不能工作?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM