Laravel: множественная реализация метода auth

В одном проекте laravel у меня было бы два метода аутентификации:

  1. Аутентификация клиента API (чтобы проверить, может ли клиент запрашивать API) с выделенной красноречивой моделью (что-то вроде APIUser)
  2. Аутентификация пользователя (для проверки учетных данных пользователя) с помощью другой выделенной модели (Something User)

Я хотел бы пройти аутентификацию через первую систему аутентификации, а затем проверить учетные данные пользователя через вторую систему аутентификации. Пример :

curl -u a:b myapi/?user=c&pass=d

Так a&b логин и пароль для аутентификации клиента API и c&d являются логином и паролем для аутентификации пользователя. Что может быть лучшим способом сделать это: создать систему с множественной аутентификацией? или считаете, что только одна система предназначена для аутентификации, а другая просто запрашивает базу данных? или что-то другое ? (надеюсь, мой вопрос достаточно ясен, я могу отредактировать, если вам нужно)

0

Решение

Multiauth работает как встроенная авторизация laravel, но допускает несколько независимых сеансов аутентификации (вы можете войти в систему с первой, второй или обеих учетных записей).

0

Другие решения

Используйте Ollieread’s MultiAuth расширение для Laravel. Это все для вас. Просто откройте файл app/config/auth.php и замените этот массив:

return array(
'driver' => 'eloquent',
'model' => 'User',
'table' => 'users',
'reminder' => array(
'email' => 'emails.auth.reminder',
'table' => 'password_reminders',
'expire' => 60,
),
);

с

return array(
'multi' => array(
'admin' => array(
'driver' => 'eloquent',
'model' => 'Admin'
),
'user' => array(
'driver' => 'database',
'table' => 'users'
)
),

'reminder' => array(
'email' => 'emails.auth.reminder',
'table' => 'password_reminders',
'expire' => 60,
),
);

Конечно, вы можете добавить столько, сколько хотите. Затем скопируйте и вставьте по умолчанию User.php модель для вашего Admin.php Таблица.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector