我正在使用Angular在Javascript应用程序中实现OAuth的implicit授权类型。我想使用AJAX请求来请求令牌。当我向我的OAuth服务器发出请求时,它会响应一个
我的问题是,如果是ajax请求,我没有办法读取散列片段,因为
我希望请求令牌在后台进行,用户无需知道正在发生什么。(也就是说,浏览器的URL不会跳来跳去。)我还应该提到,我正在一个SSO可用的环境中工作,并且用户很可能已经通过SSO进行了身份验证。只要我的OAuth服务器检测到SSO cookie,它就会知道用户之前已经经过身份验证,并为该应用程序发放令牌,而无需重定向到登录页面。
是否有任何方法可以读取第一个响应的位置标头或重定向到的URL?看起来xhr本身采取了很多措施来防止这种情况,所以我也想知道这背后的原因是什么?
302
和一个location
头。根据规范,位置是我的配置重定向URL和包含访问令牌的散列片段。我的问题是,如果是ajax请求,我没有办法读取散列片段,因为
XmlHttpRequest
自动遵循位置标头。我似乎无法获得有关初始响应(状态为302
,具有位置标头)的任何信息。如果有一种方式可以拦截该响应并读取位置标头,那么我就能完成操作了。我希望请求令牌在后台进行,用户无需知道正在发生什么。(也就是说,浏览器的URL不会跳来跳去。)我还应该提到,我正在一个SSO可用的环境中工作,并且用户很可能已经通过SSO进行了身份验证。只要我的OAuth服务器检测到SSO cookie,它就会知道用户之前已经经过身份验证,并为该应用程序发放令牌,而无需重定向到登录页面。
是否有任何方法可以读取第一个响应的位置标头或重定向到的URL?看起来xhr本身采取了很多措施来防止这种情况,所以我也想知道这背后的原因是什么?