Я реализую неявный тип гранта OAuth в приложении Javascript, используя Angular. Я хотел бы запросить токен, используя запрос AJAX. Когда я делаю запрос на свой сервер OAuth, он отвечает 302
и заголовком location
. Согласно спецификации, это мой настроенный URL перенаправления с хэш-фрагментом, содержащим токен доступа.OAuth2 Неявный грант с Ajax
Моя проблема заключается в том, что я не могу прочитать хэш-фрагменты, если это запрос ajax, так как XmlHttpRequest
автоматически следует за заголовком местоположения. Кажется, я не получаю никакой информации об исходном ответе (тот, у кого есть 302
, и имеет заголовок местоположения.) Если бы какой-то способ перехватить этот ответ и зачитать заголовок местоположения, я бы установил.
Я хотел бы просить токен произойти за кулисами, без того, чтобы пользователь знал, что это даже происходит. (То есть без URL-адреса браузера). Я должен также упомянуть, что я работаю в среде, где имеется SSO, и пользователь, скорее всего, уже прошел аутентификацию через SSO. Пока мой сервер OAuth обнаруживает куки-файлы SSO, он будет знать, что пользователь ранее был аутентифицирован и просто выдал токен для этого приложения, без необходимости перенаправления на страницу входа в систему.
Есть ли способ прочитать заголовок местоположения первого ответа или прочитать перенаправленный URL? Похоже, что сам ххр делает все возможное, чтобы предотвратить это, поэтому я также задаюсь вопросом, в чем причина этого?
Не похоже, что вы задаете реальный вопрос. – mikefrey