【发布时间】:2016-12-23 07:18:30
【问题描述】:
我正在使用 Angular 的 Javascript 应用程序中实现 OAuth 的隐式授权类型。我想使用 AJAX 请求请求令牌。当我向我的 OAuth 服务器发出请求时,它会以 302 和 location 标头进行响应。根据规范,该位置是我配置的重定向 URL,其中包含访问令牌的哈希片段。
我的问题是,如果是 ajax 请求,我无法读取哈希片段,因为 XmlHttpRequest 自动跟随位置标头。我似乎无法获得有关初始响应的任何信息(状态为302 并具有位置标头的响应。)如果有某种方法可以拦截该响应并读出位置标头,我会被设置.
我想请求一个令牌在幕后发生,而用户甚至不知道它正在发生。 (也就是说,没有浏览器的 URL 到处乱跳。)我还应该提到,我在 SSO 可用的环境中工作,并且用户很可能已经通过 SSO 进行了身份验证。只要我的 OAuth 服务器检测到 SSO cookie,它就会知道用户之前已经过身份验证,并且只需为此应用程序颁发令牌,而无需重定向到登录页面。
有什么方法可以读取第一个响应的位置标头,或者读取重定向到的 URL?似乎 xhr 本身已经竭尽全力防止这种情况发生,所以我也想知道这是什么原因?
【问题讨论】:
-
您似乎不是在问一个实际的问题。
标签: javascript angularjs ajax oauth