我正在尝试在 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";
});
});
问题是
使用用户令牌:
现在,每当我使用用户令牌进行测试时,它都可以正常工作,用户只能访问他自己的路由,而不能访问其他路由。
使用合作伙伴令牌:
使用合作伙伴令牌,我可以访问合作伙伴路由和管理路由。
使用管理员令牌:
使用管理员令牌,我可以访问管理员和合作伙伴路由
我只是希望每种类型的用户都可以访问自己的路线,而不是其他路线。