Laravel Passport 保护多重身份验证 (Guard) api 路由

时间:2021-06-25 09:42:31

标签: php laravel laravel-passport

我正在尝试在 laravel 中实现多身份验证 api,但无法保护 api 路由。我尝试了几乎所有可用的在线资源,但未能实现我的目标。我为 api 身份验证用户、合作伙伴和管理员使用了三个守卫。我正在使用以下防护

        'user-api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],
        'partner-api' => [
            'driver' => 'passport',
            'provider' => 'partners',
        ],
        'admin-api' => [
            'driver' => 'passport',
            'provider' => 'admins',
        ],

我的 api 路由是

// User routes
Route::group(["middleware" => 'auth:user-api'], function () {
    Route::get("/usertest", function(){

        return "User Test Successful";

    });
});

// Partner Routes
Route::group(["middleware" => 'auth:partner-api'], function () {
     
     Route::get("/partnertest", function(){

         return "Partner Test Successful";
     
     });

});

// Admin Routes
Route::group(["middleware" => 'auth:admin-api'], function () {
     
     Route::get("/admintest", function(){
         
        return "Admin Test Successful";

     });

});

问题是

使用用户令牌

现在,每当我使用用户令牌进行测试时,它都可以正常工作,用户只能访问他自己的路由,而不能访问其他路由。

使用合作伙伴令牌

使用合作伙伴令牌,我可以访问合作伙伴路由和管理路由。

使用管理员令牌

使用管理员令牌,我可以访问管理员和合作伙伴路由

我只是希望每种类型的用户都可以访问自己的路线,而不是其他路线。

0 个答案:

没有答案