如标题中所述,我想执行从位于localhost:port1
的angularJs应用程序到localhost:port2
中的另一个angularJs应用程序的重定向。
这两个应用程序使用openid-connect
服务器和this angualrjs指令进行保护。
问题是,当我登录第一个应用程序并执行重定向到第二个应用程序时,它告诉我重新登录,好像我没有经过身份验证。
所以我为这个问题找到了一个workaroud:我在重定向网址中发送了access_token并在第二个应用中使用了它。
但我读到在URL中公开access_token是一种不好的做法..
所以我的问题是有没有办法使用$ window.open(url)发送带有重定向的授权标头..?
谢谢你的进步。答案 0 :(得分:1)
不,您无法设置标头,因为您收到的标头来自后端。您只需要浏览器更改网址即可。并且您不希望将access_token放在url中(明智的操作)。
我想到的解决方案是在session-storage中编写access_token。它是安全的,因为它只能被当前选项卡访问。第二个angularjs应用程序可以在启动时检查会话存储,如果存在则使用它。
更新:会话存储是特定于端口的,因此在这种情况下不起作用:
第二种解决方案是使用cookie,与sessionStorages,cookies are not port specific不同。因此,当第二个angularjs应用程序出现时,它可以检查cookie以查看是否存在身份验证令牌,如果它存在,则它不会转到登录页面。