Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Боюсь если вы не знаете фреймворка
да, это так.
В общих чертах вам надо запрограммировать собственный guard
Судя по описанному мною вопросу и той статье которую вы указали в сообщении - речь идет не о guard, а о Providers отвечающим за реализацию:
the authentication provider is responsible for retrieving the user from the back-end storage
Вот только, для работы модели пользователя нужны контракты, которые выполнить в моем случае нельзя или я не совсем понимаю как.
Подобный вопрос встречается на "просторах" Интернет, но вменяемого ответа, к сожалению - нет.
Здравствуйте.
Laravel 5.5
PostgreSQL - 10.6 (вопрос сохраняет свою актуальность для любой СУБД имеющей встроенные процедуры)
php 7.1.25
Планируем переход с другого фреймворка, на Laravel. Прошу помочь разобраться, как правильно реализовать аутентификацию в БД, при условии, что нам доступны только встроенные процедуры (в БД).
Для упрощения, рассмотрим, что дано три встроенные процедуры:
1. AUTH_USER(LOGIN, PASSWORD). Аутентификация пользователя. В случае успешной аутентификации возвращает SESSION_KEY, который далее будет использоваться для всех запросов. В случае неуспешной аутентификации - NULL:
2. IS_KEY_VALID(SESSION_KEY). Проверка валидности SESSION_KEY. True - пользователь аутентифицирован, False - нет.
3. GET_SOME_DATA(SESSION_KEY). Получение каких-то данных для аутентифицированного пользователя.
В целом, общий алгоритм работы мне понятен:
1. Для незалогиненого пользователя - Получаем LOGIN/PASSWORD из запроса (страницы входа), вызываем процедуру AUTH_USER(LOGIN, PASSWORD). Если ок - логиним пользователя, сохраняем SESSION_KEY в php-сессии.
2. Для залогиненного пользователя. Проверяем валидность ключа (взятого из php-сессии данного пользователя) IS_KEY_VALID(SESSION_KEY). Если всё ок - вызываем GET_SOME_DATA(SESSION_KEY) и обрабатываем результаты запроса. Если не ок - разлогиниваем пользователя и перенаправляем на страницу входа.
Собственно вопрос - как правильно осуществить аутентификацию через встроенную процедуру AUTH_USER(LOGIN, PASSWORD) в Laravel?
В частности, я запутался с Illuminate\Contracts\Auth\UserProvider и Authenticatable. В моем случае - нет доступа к записи пользователя в БД.
Куда и как двигаться дальше?
Страницы 1