问题描述
在具有ajax调用的SPA中,如果按下浏览器的重新加载按钮,则不会发送jwt(或其他参数),来自不带jwt的服务器的响应为401。如何处理这种情况?
1-在每个ajax调用之前,我都会存储(本地存储)一个带有查询参数和我要访问的路径的json(jwt是不必要的,因为它也独立保存在localstorage中)
2-当您单击浏览器中的重新加载时,防火墙检测到未发送jwt,并将我重定向到未经授权的页面401
3-在此页面上(未经授权),我有一个事件,加载结束时查找jwt是否存在于localstorage中,如果存在,它还将使用参数和路径来检索json。
4-对发送参数json和jwt的路径进行新的ajax调用,如果接收到成功的响应,它将从服务器接收正确的页面并显示它,否则显示未授权的401
使用pushState播放会显示正确的路径。 Jwt始终在承载授权标头中发送它。服务器准备使用参数的json而不是请求中的普通参数。我使之复杂化是因为每个ajax请求都包括接收一对新的密钥(jwt和refresh令牌),这些密钥将覆盖现有值并再次向服务器发出相同的请求。未经授权的页面首先显示加载的gif,当它收到响应时,将显示未经授权的401或正确的页面。
您如何看待该解决方案?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)