【发布时间】:2018-10-21 10:56:06
【问题描述】:
我有一个基于 Angular 的 SPA,并希望利用 OAuth2 隐式流 OAuth2 implicit flow
当授权服务器建立后,如果我与它有一个活跃的会话并且我发送把这个 URL 放在浏览器地址栏中
https://server.example.com/authorize?response_type=token&client_id=s6BhdRkqt3&state=xyz&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1
我使用 access_token 正确重定向到
HTTP/1.1 302 Found
Location: http://client.example.com/cb#access_token=2YotnFZFEjr1zCsicMWpAAs&state=xyz&token_type=example&expires_in=3600
规范规定client.example.com/cb 应该返回一个能够访问完整重定向 URI 的网页(通常是带有嵌入脚本的 HTML 文档),包括用户代理保留的片段,并提取访问令牌。我已经实现了一个页面,脚本从window.location.hash 获取 access_token 并且它可以工作。
现在,由于 SPA 已经加载,而且我还需要为令牌续订执行此操作,因此我想使用 ajax 请求来执行此操作。但是,使用 ajax 时,会自动执行重定向,我只得到 HTML 页面,但 access_token 丢失了。我可以在响应的 Location 标头中看到 access_token,但不知道如何访问它。
Auth0 和Okta 似乎支持使用隐式流的静默身份验证,它们是如何做到的?
任何帮助将不胜感激。
【问题讨论】:
标签: javascript angular oauth-2.0