如何使用AngularJS获取重定向响应的标头

时间:2015-09-16 10:01:25

标签: angularjs header oauth-2.0 request

我正在尝试为内部应用程序实现OAuth2身份验证方法。这个过程看起来非常简单:

  1. 用户按“登录”按钮
  2. 用户被重定向到包含code
  3. OAuth2 server的网页
  4. 正在向OAuth2 server发送请求以获取access_token
  5. 收到access_token后,用户将被重定向回初始页面,并且在此重定向期间正在设置特殊标头Header["Access-Token"]
  6. 在这种情况下,身份验证工作正常,我唯一的问题是在重定向到初始页面后我无法读取Header["Access-Token"]

    使用interceptors我能够拦截从应用程序发送的请求(例如REST API请求),但不能拦截页面加载期间的请求。

    对于这个问题,有没有使用Angular的解决方案?

1 个答案:

答案 0 :(得分:1)

我希望它会有所帮助。

  • 您可以将用户从服务器重定向到“originalURL /”+ access_token ,因为响应将间接发送到服务器上的端点
  • 然后,如果您不想公开access_token,您可以在cookies / session中设置它的值,然后将其从网址中删除。
  • 提醒:如果该令牌包含“/”或“#”,请在从服务器重定向时将其替换为某个关键字,因为Angular在路由中使用“/”和“#”。因此,如果您的网址包含此类字符,则会将您重定向到默认路由。