我在两个子域上托管了两个Web应用程序(原型),例如:
1)cms.mydomain.com上的CMS(用PHP完成)。
2)SPA - 单页网页应用程序(在 JavaScript 中完成)位于spa.mydomain.com。
我的用户案例:
用户可以访问CMS应用程序并使用用户名和密码进行身份验证。
验证成功完成后,CMS应用程序上会显示包含一些项目的网页。
用户可以选择一个项目而不是在带有SPA应用程序的新窗口中打开。
目前,在CMS应用中完成身份验证后,会创建承载令牌,我们会将TOKEN作为查询字符串传递给SPA应用,以便进行身份验证用户。
SPA app JavaScript检索查询字符串和其他附加参数并执行API调用以便运行。
注意:
我知道查询字符串中的TOKEN可能是不安全的,因为:
带有查询字符串参数的网址保存在网络服务器日志中,访问它们可能会影响安全性。
Google Analytic等第三方应用程序可以在其报告中存储此类网址和查询字符串。
我想了解你的意见:
感谢您的时间。
答案 0 :(得分:1)
您可以为SPA创建一次性访问令牌,而不是将原始承载令牌作为查询字符串发送。
然后可以将此令牌发送到API,解码并用于创建真正的身份验证令牌,但其优点是只有一次有效。现在您不再需要担心服务器日志,GA等。我认为这是一种重定向形式,可以缓解这些问题。