2014-12-28 2 views
0

Между запросом авторизации (3.1.2.1) и ответом на аутентификацию (3.1.2.5) сервер авторизации отвечает за проверку запроса, аутентификацию пользователя и получение согласия пользователя перед отправкой ответа.Ответ на неявный ответ OpenID

http://openid.net/specs/openid-connect-core-1_0.html#ImplicitFlowAuth

Как это должно работать в SPA-приложения?

Если я выдаю запрос ajax, сервер авторизации не может аутентифицировать пользователя (я не вижу, как нет cookie, http-заголовка или фрагмента URL-адреса, сообщающего серверу авторизации, который есть у пользователя). Если я перенаправляю пользователя на конечную точку аутентификации, мой SPA выгружается. Поскольку у меня нет сервера redirect_uri (что я понял - это весь смысл неявного потока?), Конечная точка никогда не сможет дойти до моего SPA снова.

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

ответ

0

OAuth 2.0/OpenID Connect отделяет аутентификацию от приложения. Вы перенаправляете неавторизованных клиентов/пользователей из своего приложения, прежде чем что-либо загрузится, и обработайте ответ авторизации в SPA. Ваш URI перенаправления укажет на SPA. В любом случае вы не будете обрабатывать танец OAuth 2.0/OpenID Connect в Ajax, но в полном браузере.

+0

Спасибо, я узнал, что могу использовать всплывающее окно и захватить ответ и вернуть его в SPA, таким образом мой SPA все еще загружен и может использовать захваченный токен. Может быть, есть способ захватить ответ с полной переадресацией. – Molotch