【发布时间】:2018-08-20 02:43:42
【问题描述】:
我在 laravel 中使用 passport 在 API 中验证我的用户。我能够从不同的表中验证不同类型的用户并为他们生成不同的令牌,但路由不受保护。例如。
用户可以像这样访问路由
Route::group(['middleware' => 'auth:api'], function () {
Route::group(['prefix' => 'v1'], function () {
Route::get('get-seller-list','API\v1\SellersController@index');
});
});
卖家可以访问类似的路线
Route::group(['middleware' => 'auth:sellers'], function () {
Route::group(['prefix' => 'v1'], function () {
Route::get('get-seller-detail','API\v1\TestController@getDetails');
});
});
但是这个middleware 检查似乎不起作用,因为我可以访问卖家的所有路由,即使我已经在 Bearer 标头中传递了为 api 生成的令牌。
我的 config/auth.php 看起来像
'guards' => [
'user' => [
'driver' => 'session',
'provider' => 'users',
],
'seller' => [
'driver' => 'passport',
'provider' => 'sellers',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
【问题讨论】:
-
嗨,我也有同样的问题。如何解决问题?
标签: php laravel authentication oauth-2.0 laravel-passport