Каков наилучший / рекомендуемый способ аутентификации пользователей, использующих отдых в Symfony?

0

Я разрабатываю приложение rest apis в приложении symfony.

Прямо сейчас мой apis используется моим приложением только по интерфейсу (запросы ajax от Angularjs). В будущем я также хотел бы представить те же API-интерфейсы для сторонних приложений.

Также в будущем у меня будут Android, приложения для IPhone и т.д.

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

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

Я хочу знать, как использовать этот пакет для аутентификации пользователей на моем веб-сайте через rest apis из моего приложения frontend?

В настоящее время я использую FOSUserBundle и form_long для аутентификации пользователя, но я изменяю интерфейс, чтобы использовать Angularjs и rest based. Таким образом, в идеале аутентификация должна просто работать как проверка подлинности form_login, но она должна основываться на отдыхе.

Я проводил исследования по этому вопросу, и люди предлагают использовать "Credentials Password Owner Owner", но для этого нужно, чтобы клиентский секрет отображался в javascript, который может быть небезопасным

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

Мне нужно написать мой провайдер проверки подлинности custome, который использует UsernamePasswordToken и прослушиватель брандмауэра, например OAuthListener, который возвращает access_token? Будет ли это безопасно использовать?

Теги:
oauth-2.0
rest

1 ответ

0
Лучший ответ

Совлокальный вопрос с некоторыми обсуждениями здесь: Symfony2 FOSOAuthServerBundle тип типа пароль требует секретности клиента

Если вы не хотите раскрывать секрет, используйте прокси-сервер между вашим угловым кодом front-end и фактическим сервером OAuth. В любом случае, если вы раскрываете секрет, ему все еще нужны учетные данные пользователя.

Вы можете устанавливать разрешенные типы грантов для каждого клиента OAuth, поэтому, если вы создаете мобильные приложения, вы захотите создать отдельную пару client_id и client_secret для приложения и для интерфейсного модуля с единственным разрешенным типом разрешения " пароль "для внешнего приложения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню