1

我尝试在自定义 Laravel 包中使用 Laravel/Sanctum。就像在默认的 Laravel 应用程序中一样,我将它添加到了 composer 文件中,添加了迁移并在路由文件中进行了设置。

出现下一条错误消息:

“未定义授权守卫[圣所]。”

我希望甚至可以在另一个包中使用圣所?

Composer.json 文件:

"require": {
    "php": "7.4.*",
    "laravel/sanctum": "^2.2"
  },

路线文件:

Route::group(['middleware' => 'auth:sanctum'], function () {
Route::post('/approve', ['uses' => 'MemberRequestController@response', 'response' => 'approve'])->name('approve_member_request');
}

服务提供者

/**
     *
     */
    private function registerRoutes()
    {
        Route::group($this->routeConfig(), function () {
            $this->loadRoutesFrom(__DIR__ . '/../../routes/api.php');
        });
    }

    /**
     * @return string[]
     */
    private function routeConfig(): array
    {
        return [
            'prefix' => ums::path(),
            'namespace' => 'martijn\UMS\Http\Controllers',
            'middleware' => ['api', 'auth:sanctum']
        ];
    }
4

4 回答 4

1

您应该发布Laravel\Sanctum\SanctumServiceProvider.

它将注册丢失的守卫。

于 2020-05-01T18:28:52.557 回答
1

bootstrap/cache/在我手动删除文件夹内容后开始工作

没有缓存/视图/路由清除帮助

于 2021-03-01T22:39:15.900 回答
0

在我的主机 DirectAdmin 中,我手动重新上传了供应商文件夹,并在遇到此错误后
Auth guard [sanctum] is not defined
重新上传了引导文件夹。
现在一切正常。

于 2021-04-09T06:32:09.523 回答
-1

在我的情况下,问题是RouteServiceProvider,默认登录被重定向到和 我不再拥有的RouteServiceProvider::HOME公共,所以只需用现有视图替换它。const HOME = '/dashboard';

于 2021-01-15T23:05:41.320 回答