使用token方法保存用户登录状态的实践

5 篇文章 0 订阅
2 篇文章 0 订阅

问题:网站中,如何保存用户的登录状态?

错误示范

用户登录后,使用 localStorage 方法在浏览器客户端直接保存 user_id,每次进入网站时,通过识别 user_id 自动获取用户的信息并实现登录。

错误点

浏览器 localStorage 保存的数据可能被——篡改
在浏览器控制台使用 localStorage.setItem() 即可更改当前 user_id,如果 user_id 被别人改了,那岂不是可以随意窃取任何人的信息?
使用cookie保存用户 id 也有一样的风险,
所以使用这种方法做保存登录状态和自动登录是不安全的

问题解决:Token
  • 用户登录,后端加密生成 token,保存在用户表中,并返回给前端
  • 前端获取 token,保存在 localStorage 中
自动登录
  • 进入网站,前端检测到 token ,首先进行 token 验证
  • 后端验证 token ,找到相关用户,然后返回数据,实现登录
发送请求,解析出 user_id
  • 请求中携带 token
  • 在需要验证 token 的 controller 中定义 public function verifytoken() 方法
  • 在需要验证 token 的接口中调用这个函数,然后解析出 user_id
解决策略:

使用 localStorage + token 方法进行身份验证

  • 登录:前端保存 token 和 个人信息(姓名、头像等,不包括user_id)
  • 每次进入网站先验证 token 是否过期,如果没过期,则保持当前状态,如果过期,则清空本地 token 和 本地个人信息,并跳转到登录页
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值