Angularjs - 使用 $window.open 重定向发送授权 header

Angularjs - Send authorization header in redirection with $window.open

如标题中所述,我想执行从 localhost:port1 中的 angularJs 应用程序重定向到 localhost:port2 中的另一个 angularJs 应用程序。
这两个应用程序使用 openid-connect 服务器和 this angualrjs 指令进行保护。

问题是当我登录第一个应用程序并重定向到第二个应用程序时,它告诉我 re-sign 就好像我没有通过身份验证一样。

所以我想出了一个解决这个问题的方法:我在重定向 url 中发送了 access_token 并在第二个应用程序中使用它..

但我读到在 URL ..

中公开 access_token 是一种不好的做法

所以我的问题是有没有一种方法可以使用 $window.open(url) 发送授权 header 和重定向 .. ?

提前致谢。

不,您不能设置 header,因为您收到的 header 来自 back-end。您只需要求浏览器更改 url。而且您不想将 access_token 放在 url 中(明智的做法)。

我想到的解决办法是把access_token写在session-storage里。它是安全的,因为它只能由当前选项卡访问。第二个 angularjs 应用程序可以检查 start-up 上的 session-storage 并在存在时使用它。

更新:Session 存储是特定于端口的,因此在这种情况下不起作用:

第二种解决方案是使用 cookie,与 sessionStorages 不同,cookie are not port specific。因此,当第二个 angularjs 应用程序出现时,它可以检查 cookie 以查看身份验证令牌是否存在,如果存在则不会转到 sign-in 页面。