Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 08.02.2019 12:33:03

Нужен совет по аутентификации/авторизации через встроенные процедуры

Здравствуйте.

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. В моем случае - нет доступа к записи пользователя в БД.
Куда и как двигаться дальше?

Изменено Donitoza (08.02.2019 12:33:49)

Не в сети

#2 08.02.2019 12:52:51

Re: Нужен совет по аутентификации/авторизации через встроенные процедуры

Боюсь если вы не знаете фреймворка, быстро описать не получится. В общих чертах вам надо запрограммировать собственный guard, не знаю как это адекватно сказать по русски.
Вот годная статья:
https://code.tutsplus.com/tutorials/how … -cms-29667


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#3 08.02.2019 14:52:48

Re: Нужен совет по аутентификации/авторизации через встроенные процедуры

Боюсь если вы не знаете фреймворка

да, это так.

В общих чертах вам надо запрограммировать собственный guard

Судя по описанному мною вопросу и той статье которую вы указали в сообщении - речь идет не о guard, а о Providers отвечающим за реализацию:

the authentication provider is responsible for retrieving the user from the back-end storage

Вот только, для работы модели пользователя нужны контракты, которые выполнить в моем случае нельзя или я не совсем понимаю как.

Подобный вопрос встречается на "просторах" Интернет, но вменяемого ответа, к сожалению - нет.

Изменено Donitoza (08.02.2019 14:53:48)

Не в сети

#4 08.02.2019 17:28:47

Re: Нужен совет по аутентификации/авторизации через встроенные процедуры

не о guard, а о Providers

они неразделимы. и на поверхности именно гард, именно его вы указываете в маршрутах или контроллере. а где-то внутри черного ящика трудится провайдер )))


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

Подвал раздела