当前位置: 首页 > 知识库问答 >
问题:

Laravel:未定义授权守卫[sanctum]

任昊苍
2023-03-14

我试图通过Sanctum在Laravel实现auth。我做了所有的步骤从留档。代币的生成工作正常,但是当我尝试使用auth: samtum中间件时,它返回错误未定义的auth Guard.

以下是我的文件:
/routes/api。php

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Dashboard;


Route::middleware('auth:sanctum')->get('/dashboard/get_current_client/', [Dashboard::class, 'get_current_client']);

Route::get('/dashboard/client_data/', [Dashboard::class, 'client_data']);

/config/auth.php

<?php

return [

    'defaults' => [
        'guard' => 'web',
        'passwords' => 'users',
    ],

    
    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'users',
            'hash' => false,
        ],
    ],

    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\Client::class,
        ],

        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],


    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
            'throttle' => 60,
        ],
    ],

    'password_timeout' => 10800,

];

/应用程序/模型/客户端。php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Laravel\Sanctum\HasApiTokens;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;



class Client extends Authenticatable
{
    use HasFactory, HasApiTokens, Notifiable;

    protected $table = 'client';
    protected $primaryKey = 'client_id';
    public $timestamps = false;
}

/app/Http/Controllers/Dashboard。php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Client;



class Dashboard extends Controller
{
    public function client_data () {
        $user = Client::where('client_id', 1)->first();
        return $user->client_id;
    }

    public function get_current_client(Request $request) {
        var_dump($request->user());
    }
}

共有1个答案

董花蜂
2023-03-14

我发现了问题。由于某些原因,/bootstrap/cache中的缓存尚未更新。手动移除后,一切都开始工作。

 类似资料:
  • Guard允许您使用简单优雅的代码写出断言代码。守卫是可拓展的。 实用函数 That 通过That可以获取守卫实例,这样您可以使用扩展函数为守卫进行扩展。 var guard = Guard.That; Requires 验证条件并在条件失败时抛出异常。 Guard.Requres<ArgumentNullException>(arg != null, $"Argument {nameof(ar

  • 本文向大家介绍vue2.0 实现导航守卫(路由守卫),包括了vue2.0 实现导航守卫(路由守卫)的使用技巧和注意事项,需要的朋友参考一下 路由跳转前做一些验证,比如登录验证,是网站中的普遍需求。 对此,vue-route 提供的 beforeRouteUpdate 可以方便地实现导航守卫(navigation-guards)。 导航守卫(navigation-guards)这个名字,听起来怪怪的

  • 功能说明 目睹直播提供了一系列的授权观看方式,如密码验证,付费观看等,然而由于客户业务的多样性,实现如:接入客户自身账户体系,登陆OA系统后再跳转到目睹观看直播等一系列更高级的授权观看方式,此时就需要使用自定义授权。 自定义授权逻辑图 功能设置 首先,需在 某个频道 - 频道管理 - 授权观看 - 授权类型 中点击自定义授权,并输入您希望在观众进入观看页时跳转的链接,如: http://your-

  • 我在这里遵循 JWT 夸克指南。我想在不允许用户组访问 API 时发送自定义响应。 这是指南中显示的示例。 我如何知道请求是否未经授权,以便我可以发送自定义响应。

  • 我正在试用Laravel5.6来构建一个ecom store API。前端将是一个单独的angular应用程序。我的大部分工作,但我想了解如何保护我的订单记录endpoint,这样除了我的angular应用程序之外,没有其他人可以创建订单。我已研究过护照方案,但看不到一个可能有帮助的解决办法。

  • 可以加上 match 守卫(guard) 来过滤分支。 fn main() { let pair = (2, -2); // 试一试 ^ 将不同的值赋给 `pair` println!("Tell me about {:?}", pair); match pair { (x, y) if x == y => println!("These are t

  • 在上一个章节中我们学习了混合守卫,但是在某些场景下我们不只是需要对 Mixin 进行条件判断,css 的样式类也是需要进行条件判断的,此时我们就需要使用到 CSS 守卫了。注意,该语法是在 v1.5.0 版本之后添加的,建议大家跟我下载同样的版本进行学习。 1. 语法定义 官方定义: “if”'s around selectors. 慕课解释: 类似与 Mixins 守卫,在选择器中使用类似于 “

  • 问题内容: 我从Nexus存储库中检出了代码。我更改了帐户密码,并在文件中正确设置了密码。在执行时,我收到错误消息,说明它尝试从该存储库下载文件。 任何想法如何解决此错误?我在Maven 3.04中使用Windows 7 问题答案: 这里的问题是所使用的密码出现错字错误,由于密码中使用了字符/字母,因此很难识别。