这个问题是要验证我是否正确理解了某些内容。我目前正在设计一个基于Web的应用程序,它涉及多个页面(想想,同一个域下的不同SPA),我希望只有一个认证点。
我的问题是:在SPA上,可以在本地/会话存储上存储身份验证令牌,据我所知,验证页面请求的唯一方法(链接)无论我使用的身份验证方法是什么(基本,OAuth,JWT等),使用Cookie都可以访问另一个页面,而不是异步请求。
我说错了吗?这是唯一可用的方法吗?
答案 0 :(得分:2)
这是一个广泛的问题,但我会说通常答案可能是“不”。你可以做很多事情。
当你提到“一个身份验证点”时,我假设你的意思是“单点登录”。有很多系统可以实现单点登录。
从广义上讲,这可能是有用的:
这是OAuth2中非常常见的流程。
答案 1 :(得分:0)
我知道几个选项:
基本HTTP身份验证
将基本身份验证与HTTPS结合使用是安全的。 请求之间重复身份验证标头,因此输入一次凭据。 唯一的问题是难看的浏览器弹出窗口请求凭据
通过javascript或服务器端HTML处理为每个链接添加令牌/签名
E.g。使用jQuery,注意代码是简化的
$(document.body).click('a', e => {
var $a = $(e.target).closest('a');
if($a.length) {
e.preventDefault();
document.location = $a.attr('href') + '&token=' + secretToken;
}
})
请找good article explaining available authentification methods here