在Angular app中将http标头添加到window.location.href

时间:2014-06-09 22:22:29

标签: angularjs http oauth-2.0 http-headers window.location

我有一个角度应用,我需要将其重定向到一个非角度的html页面,所以我想我可以使用$window.location.href将角度应用程序重定向到我的外部网站。这实际上工作正常,但是,我有一个nodejs / express后端,在提供任何内容(甚至静态内容)之前检查身份验证令牌。

这需要在http请求的标头中发送身份验证令牌。现在的问题是:

可以/如何通过在$window.location.href发送之前更改{{1}}来为请求添加身份验证令牌?

2 个答案:

答案 0 :(得分:27)

当您使用$window.location.href时,浏览器会发出HTTP请求,而不是您的JavaScript代码。因此,您无法使用令牌值添加Authorization之类的自定义标头。

您可以通过JavaScript添加Cookie并将您的身份验证令牌放在那里。 Cookie将自动从浏览器发送。但是,您需要查看使用cookie与标头的安全隐患。由于两者都可以通过JavaScript访问,因此没有额外的攻击向量。除非您在新页面加载后删除cookie,否则可能存在CSRF漏洞。

答案 1 :(得分:2)

我在Laravel PHP后端使用JWT作为身份验证,它的工作原理是将?token=...放在URL中。例如,当将AngularJS与satellizer插件一起使用时,我将?token=' + $auth.getToken()添加到URL。

我使用SSL严格用于API调用。 请注意,在您的使用案例中,这可能不是一种安全的身份验证方式。