Аутентификация пользователя с помощью модуля zfcampus / zf-oauth2 - PullRequest
0 голосов
/ 04 ноября 2018

Я реализую модуль zfcampus / zf-oauth2 с ZF3. Все, что задокументировано (https://github.com/zfcampus/zf-oauth2), работает как положено.

Я бы хотел реализовать аутентификацию пользователя.

Я обнаружил, что для этой работы существует тип предоставления пароля, но для вызова требуются идентификатор и секретный код клиентского приложения.

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

Очевидно, я этого не делаю.

Таким образом, вопрос в том, что, используя упомянутые технологии, можно ли сделать вызов с типом предоставления «пароль» без параметра «секретный»? Или есть ли рекомендации по обеспечению аутентификации пользователей с помощью модуля zf-oauth2?

Спасибо

1 Ответ

0 голосов
/ 05 ноября 2018

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

Этот контроллер будет отображать форму входа в систему, проверять пользовательские данные при их отправке, а затем перенаправлять пользователя в указанное местоположение стороннего приложения, получая только одно значение, если аутентификация прошла нормально или нет.

После получения этого события, с положительной аутентификацией, стороннее приложение может запустить процесс получения токена авторизации и отобразить пользователю страницу «Вы хотите авторизовать».

Я не использовал предоставление пароля, которое на самом деле не является необходимым в этой реализации.

После авторизации пользователя стороннее приложение получит токен, который можно использовать для использования защищенных ресурсов, например, для получения пользовательских данных или чего-либо в области действия токена, что на самом деле является моим следующим этапом изучения.

Я все еще открыт для советов:)

...