单页应用程序是一个纯客户端javascript项目,webpack说,应用程序的标题总是出现在右上角:

也就是说,如果用户已登录,则显示用户的化身。如果用户尚未登录,请显示登录按钮。
问题是,纯客户端如何知道用户是否已登录?
我目前的实现是先显示“登录按钮”,然后页面向服务器发送一个XHR请求,尝试获取用户信息。
如果请求成功,则解析用户的化身url并将“登录按钮”替换为“avatar”,否则。
如果请求在401 http状态代码中失败,那么客户端就会知道用户还没有登录,所以保留“登录按钮”。
但是这里的警告是:会有许多401请求,因为大多数情况下,该页面是由匿名用户打开的,这将在控制台中显示一条红色错误消息。
有人能在这里分享一些想法吗?
发布于 2019-06-21 09:49:47
“纯客户端如何知道用户是否已登录?”
我在SPA上使用jsonwebtoken。当用户登录时,我将JWT令牌存储在浏览器区域存储中。
为了检查用户是否登录,我检查存储在浏览器中的令牌的过期日期。如果用户已登录,则向服务器发送一个fetch请求以获取用户信息。
“大多数时候会有许多401个请求”
我相信这里的问题更多的是与捕获HTTP错误请求有关。如果用户在客户端检查后没有登录,为什么要向服务器发送请求?使用SPA ->来处理它,例如重路由到登录页面。
https://stackoverflow.com/questions/56700788
复制相似问题