嘿,我们为公司建立了一个企业网站。
当公司中的一些用户连接到该站点时,他具有用户id。
当id从客户端发送到后端(Node.JS)时,我检查这个id是否在我的网络上,如果他在,他会得到一个访问令牌。
问题是,在他获得访问令牌之后,客户端中的用户需要再次重新加载页面才能获得访问权限,如果他不刷新页面,"Auth-Guard“会阻止他。
在客户端处理这样的系统的最佳实践是什么?
发布于 2019-11-11 16:40:23
有很多方法可以绕过这一点。
1如果你不想让服务即时回复令牌,那么你可以使用某种服务器推送技术(SignalR是.Net的解决方案,我相信在node中也有类似的解决方案)。
2为什么不在客户端发送id的时候回复token?当您获得它时,将它保存在服务中并在本地缓存它。然后,在执行卫士时,从服务中获取最新的值并执行验证。
请提供有关这方面的更多信息。
我的建议是,使用一些已知的和经过验证的身份验证方法,如oauth 2或openid connect,从您的身份提供商那里获取令牌。
在做任何其他事情之前,我建议您检查implicit grand method for oauth2,这是建议使用单页面应用程序身份验证的方法。
其他安全问题
请注意,如果客户id是可猜测的,那么人们可能会冒充其他人,从而呈现您的spa insecure.
发布于 2019-11-11 17:28:53
在项目中添加HttpInterceptor,使用逻辑检查令牌(从cookie或本地存储中,无论您存储在哪里),如果存在,则将令牌附加到请求中,这样,如果存在,则每个请求都应该使用令牌触发。
用于HttpInterceptor的Example ..
现在,每当您获得令牌时,只需将令牌设置为您设置令牌的位置(cookie或本地存储)即可,HttpInterceptor开始将访问令牌添加到触发的请求旁边……快乐编码:)
https://stackoverflow.com/questions/58797725
复制相似问题