我即将开始构建一个网关应用程序,将通过api与移动应用程序用户进行通信。网关应用程序还具有分散在不同表中的版主用户,因为版主将只使用web界面而不是api来管理移动用户。我已将默认防护设置为:
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],
还有其他的东西:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'moderators',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'moderators' => [
'driver' => 'eloquent',
'model' => 'App\Moderator::class',
],
],
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
],
'moderators' => [
'provider' => 'moderators',
'table' => 'password_resets',
'expire' => 15,
],
],
现在,问题是,即使其他防护设置正确,登录路由总是尝试使用默认防护,无论我做什么,并在我尝试作为版主登录时返回一个错误。
我已经在控制器中指定了$this->middleware('auth:web');
,但它仍然使用默认的登录保护。
这个想法是,移动用户永远不能通过web界面登录,只能通过api进行交流,而版主只能使用web guard,而不能使用api。
我可以将默认防护设置为'web‘并颠倒逻辑,但我仍然想知道是否可能,以及当默认防护设置为'api’时如何使其工作。
发布于 2018-02-15 19:08:16
如果您使用的是分组路由-
Route::middleware('auth:api')
如果您有未分组的路由-
$this->中间件(‘auth:web’)
https://stackoverflow.com/questions/48803919
复制相似问题