2016-08-17 3 views
0

Я пишу REST API в Symfony 3.1.1, и у меня есть некоторые проблемы с аутентификацией. Я использую для этого FOSOAuthServerBundle, и он отлично работает. Проблема заключается в том, что клиенты не знают client_id и client_secret, но его имя пользователя и пароль ...Предоставление разрешения FOSOAuthServerBundle

Я хочу, чтобы мои клиенты authenticante с REST API с именем пользователя и паролем, неclient_id и client_secret.

Возможно ли это?

Заранее спасибо. (Извините за мой английский, я учусь)

ответ

0

я столкнулся с той же проблемой в двух различных сценариев, и я решил его следующими способами: - прокси-функция Войти с и конечной точкой в ​​вашем веб-интерфейсе, который знает client_id и client_secret - Создайте пользовательский грант, которому не нужны cliend_id и client_secret. В Symfony 2.x вы должны создать класс, реализующий интерфейс GrantExtensionInterface и объявить его в качестве сервиса с тегами:

tags: - { name: fos_oauth_server.grant_extension, uri: "http://whateveryouwahtn.tld/my_custom_grant" } 

Ури формат является стандартным для OAuth. Этот URL не должен быть действительным.

+0

Да, я в чем-то подобном. Кажется странным, что FOS не рассматривала эту ситуацию ... Мы все в порядке? –

+0

По моему опыту, у меня есть оба решения, работающие в среде prod. Если это правильно или нет ... Я тонкий, так как FosOauthServer придерживается стандарта oAuth, ant дает вам возможность создать таможенный грант, чтобы вы могли продлить на demmand. Клиент_ид и client_secret создают несколько проблем в мобильных средах, поскольку они должны быть жестко закодированы где-то в приложении, поэтому, если вы их измените, вам необходимо обновить приложение на рынке. Обычным решением является проксирование конечной точки auth и сохранение его cliente_id и секрет в вашем «backend» – Carlos

+0

Хороший комментарий @ Карлос. Итак, не могли бы вы дать нам ссылку на пример, чтобы учиться? Или вы можете поделиться с нами своим решением. Благодаря ;) –

Смежные вопросы