H5开发内嵌到别的APP里面,用户授权之后或有一个只有用户登录凭证
遇到一个问题,用户登录凭证的存储
是存储在 localstorage还是 sessionstorage
localstorage
长期存储,关闭页面后不会消失。第二次从APP进入,不会重新授权,不会刷新登录凭证。
sessionstorage
临时存储,页面关闭会消息。每次打开APP进入页面,都会新授权,刷新登录凭证。
一般情况下,内部页面跳转,整个页面的交互只在本项目页面内部跳转,这种情况下 sessionstorage 是比较合适的。
但是我们现在的页面一般都会 内嵌别人的第三方页面。
如果使用 sessionstorage ,跳转第三方页面后,回来session 就没有了。然后又需要登录授权。这个就很麻烦。
使用localstorage 存储,虽然不会出现跳第三方回来后登录失效的问题。但是当服务器端的 登录凭证失效的时候,前端在做页面的时候,就会出现请求了接口,业务接口报 登录凭证失效。
这种情况的解决办法:
使用 localstorage存储登录凭证 token的 同时,再存储一个 token失效时间。
例如: 假设登录 token 失效时间是48小时那么存储的时候
localstorage 存储一个 token = “asad1231asdas12312sdadad”,
还需要储存一个token_timeout=“20220111174700”,就是失效时间。
前端H5在判断token 是否有效就是:判断是否存在和在有效期内,2着都满足,才能算有效
698

被折叠的 条评论
为什么被折叠?



