Добрый день. Я пишу приложение в Laravel, используя Adldap2 и JWT.
Основная идея состоит в том, что есть системные пользователи из таблицы пользователей, а есть простые пользователи из AD. Форма входа и функциональность единичны, и администраторы имеют доступ к админ-панели.
Я попытался сделать два сторожа:
'defaults' => [
'guard' => 'user',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'user' => [
'driver' => 'jwt',
'provider' => 'users',
'hash' => false
],
'admin' => [
'driver' => 'jwt',
'provider' => 'admins',
'hash' => false
]
],
Авторизация проста. Во-первых, я смотрю на таблицу пользователей, в случае, если она является администратором и авторизуется с помощью Guard Admin, если нет, я смотрю в AD для простого пользователя и атрибутирую для Guard.
Я получаю токен jwt без каких-либо проблем. ,Но при последующем запросе я получаю сообщение об ошибке от adldap, потому что в качестве пользователя по умолчанию выбран guard, что относится к AD. Как я могу заставить систему помнить, что вам нужно использовать свою охрану для авторизованного администратора и свою собственную для пользователя?
Поставщики:
'providers' => [
'users' => [
'driver' => 'ldap', //old: eloquent
'model' => App\Models\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
],