2013-04-21 7 views
0

Предполагается, что у меня есть веб-приложение, которое должно аутентифицировать пользователя. Вместо того, чтобы делать это самостоятельно, он перенаправляет пользователя на выделенную службу проверки подлинности.Как перенести токен JSON на клиентское приложение?

Здесь пользователь входит в систему, а веб-маркер JSON (JWT) создается с претензиями к пользователю.

Теперь - как отправить JWT обратно в клиентское приложение?

В принципе, я мог бы сделать перенаправление снова, но тогда мне нужно поместить JWT в URL-адрес, и я хочу избежать этого (я думаю, это не лучшая идея, чтобы маркер в URL-адресе был видимым для всех с доступ к истории браузера).

Что еще я мог/должен был сделать?

Я мог бы представить себе POST обратно на исходный сервер и отправку JWT внутри кузова. Тогда он будет скрыт, и исходный сервер может получить доступ к токену в любом случае.

Любые другие идеи или предложения?

ответ

2

OAuth, CAS, SAML и OpenID - это некоторые протоколы, которые затрагивают эту ситуацию. Обычно довольно просто развертывать библиотеки, которые их реализуют.

Большинство предложений будет повторно реализации этих потоков :)

В разделе «Сервер Flow» в руководстве аутентификации oauth2 Google является примером того, как 3 лица (браузер, веб-сайт, аутентификатор) обмениваются лексемы:

https://developers.google.com/accounts/docs/OAuth2Login

-1

Там несколько способов сделать это, в зависимости от того, какой WebApplication у вас есть: браузер на основе (JavaScript) один или сервер на базе (PHP, ASP и т.д.) один. К счастью, эти проблемы уже имеют продуманные решения. Для проверки подлинности пользователя проверьте спецификацию OpenId Connect. Это даст вам точные ответы на ваш вопрос.