• Ukieweb

    佳的博客

    曾梦想仗剑天涯,后来工作忙没去。

如何让浏览器记住登录状态 token cookie session

使用cookie保存

cookie是保存在客户端的,用户登录成功后,后台将加密后的用户信息发送到客户端浏览器,由客户端浏览器保存。

使用session保存

Session保存在服务器端,每个session都有一个唯一的session id 保存在cookie里,如果关闭浏览器再打开浏览器,cookie仍然记住了之前的session id,就可以自动登录。

cookie分类

内存cookie(进程中的cookie)

大部分的session机制都使用进程中cookie来保存session id,关闭浏览器后这个进程自动消失,因此cookie也随之消失,再次连接到服务器时,无法找到对应的session,也就无法实现自动登录。

硬盘cookie

硬盘中的cookie不会丢失session id,即使关闭浏览器后再打开,也仍能实现自动登录。比如“记住一周”,购物车信息可以在切换不同浏览器时依然可用,都是因为使用了硬盘cookie。

使用token

使用token.png

  1. 用户首次登录,输入账号密码,提交服务器。

  2. 服务器对输入内容进行校验,若校验通过,登录成功,并生成一个token值,将该值存入数据库,并返回给客户端。

  3. 客户端拿到返回的token,保存至本地(cookie/local storage),作为公共参数,以后每次请求服务器时都携带该token(放在响应头里),提交给服务器进行校验。

  4. 服务器接收请求后,验证是否携带token,若携带,则取出请求头中的token值与数据库存储的值进行匹配校验,若相同,则登录成功,返回数据,若数据库中不存在该值或者两者不一致,则说明原来登录已失效,返回错误码。

注:用户每进行一次登录,登录成功后,服务器都会更新一个token新值返回给客户端。

token的优点

  1. token可以存储在任何位置(比如cookie)

  2. token更容易跨域

  3. token过期时可以通过刷新token,让用户一直保持有效登录

  4. 如果api在不同终端上,token更方便安全







0
0
下一篇:vue cli3 配置了代理跨域无效的解决 proxy 和 baseurl 冲突

0 条评论

老佳啊

85后,大专学历,中原人士,家里没矿。

由于年轻时长的比较帅气,导致在别人眼里,我一直不谈恋爱的原因是清高,实则是自己的小自卑。最大的人生目标就是找一个相知相爱相容的人,共度余生。

和人相处时如果能感受到真诚,会非常注重彼此的关系,对别人没有什么心机,即使有利益冲突,一般也会以和为贵,因为在这个世界上,物质的东西,从来不会吸引到我。

特别迷恋那些大山大水,如果现在还能隐居,可能早就去了。对那些宏伟的有底蕴的人文景观比较不感冒。

从事于IT行业,却一直对厨房念念不忘,由于身材魁梧,总觉得自己上辈子是个将军,可惜这辈子没当兵,也不会打架。