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

使用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

在这里插入图片描述

  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更方便安全

参考(摘抄)链接:
实现记住我的登录状态,自动登录功能
关闭浏览器再打开,网站是否应该自动登录以及如何实现呢?
token实现登录状态保持/身份认证的机制

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值