Laravel Fortify игнорирует специальную защиту для 2faPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel Fortify игнорирует специальную защиту для 2fa

Сообщение Anonymous »

У меня есть Laravel 12 с двумя охранниками «web» и «admin», у администратора есть собственная таблица пользователей «admins» (вопросы конфиденциальности).
У нас есть 2 модели «Пользователь» и «Администратор», Admin Модель начинается так:

Код: Выделить всё

{
use HasFactory, HasRoles, Notifiable, SoftDeletes, TwoFactorAuthenticatable;

protected string $guard_name = 'admin';
protected $table = 'admins';

--snip--
оба настраиваются в config/auth.php следующим образом:

Код: Выделить всё

'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admin',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
'admin' => [
'driver' => 'eloquent',
'model' => App\Models\Admin::class,
],
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_reset_tokens',
'expire' => 60,
'throttle' => 60,
],
'admin' => [
'provider' => 'admin',
'table' => 'password_reset_tokens_admin',
'expire' => 60,
'throttle' => 60,
],
],
В веб-защите все работает. Я могу зарегистрироваться, войти в систему и просмотреть свой профиль в обеих группах пользователей/защитниках.
Что НЕ работает для защиты администратора, так это маршрут Fortify 2FA «подтверждение пароля».
Когда я нажимаю «2FA-аутентификация» в качестве «admin», я перенаправляюсь на маршрут «Подтверждение пароля» неправильного охранника «web», я не вхожу в систему с «web», поэтому меня перенаправляют на «web». Войти.
Это работает для администратора, когда я меняю Register() в FortifyServiceProvider.php следующим образом:

Код: Выделить всё

config(['fortify.guard' => 'admin']);
config(['fortify.passwords' => 'admins']);
config(['fortify.home' => '/admin/dashboard']);
Я пытался изменить значения конфигурации на основе сеанса, но на уровне ServiceProvider сеанса еще нет, сеанс инициализируется только позже в рамках платформы.
У кого-нибудь есть решение для этой проблемы?>

Подробнее здесь: https://stackoverflow.com/questions/798 ... rd-for-2fa
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»