【问题标题】:Laravel 8: or middleware for routeLaravel 8:或路由中间件
【发布时间】:2021-12-29 21:28:07
【问题描述】:

我希望用户能够使用我创建的 2 个身份验证登录。但是当我像下面这样添加时,它会抛出一个错误,它让我输入我创建的两种身份验证样式,而我只想输入两种身份验证样式中的一种来成功登录。

不知道有没有人和我一样的情况。你能告诉我如何解决这个问题吗?

代码路由api.php:

Route::group(['middleware' => ['auth:sanctum', 'auth.basic.once']], function () {
   Route::get('/images', [ImageController::class, 'index']);
});

我尝试了以下一些方法,但仍然不起作用,其中包括中间件参数:https://laravel.com/docs/8.x/middleware#middleware-parameters

Route::group(['middleware' => ['auth:sanctum'|'auth.basic.once']], function () {
   Route::get('/images', [ImageController::class, 'index']);
});

Route::group(['middleware' => ['auth:sanctum|auth.basic.once']], function () {
   Route::get('/images', [ImageController::class, 'index']);
});

【问题讨论】:

    标签: php laravel middleware laravel-sanctum


    【解决方案1】:

    您需要将您的 auth 编写为警卫,而不是中间件。与此相关的文档是 here

    之后你可以设置多个守卫:

    Route::group(['middleware' => 'auth:sanctum,basic'], function () {
       Route::get('/images', [ImageController::class, 'index']);
    });
    

    【讨论】:

      猜你喜欢
      • 2021-11-23
      • 2021-08-17
      • 2021-09-01
      • 2021-05-12
      • 2016-06-03
      • 2016-12-09
      • 2020-12-09
      • 2019-01-13
      • 1970-01-01
      相关资源
      最近更新 更多