和大家谈谈登录流程

小菜鸡一枚,想和大家一起讨论一下web端通用登录流程,欢迎补充。

  1. 用户第一次登录时,登录成功后端返回一个token,可以存在cookie,或者直接给前端,前端拿到之后,如果后端没有把token放在cookie,也可以存在sessionStorage或者localStorage。
  2. 当有接口需要用到token时,把token放在请求头中,带给后端,后端拿到对token进行校验,如果过期,http状态码设为401返回给前端,前端设立响应拦截器,判断如果状态码为401,就返回登录页面,同时清除token。
  3. 如果用户登录过,访问登录页时,用路由拦截器判断缓存中是否有token,有的话从登陆页面直接跳到主页。
  4. 如果用户未登录,强行用url访问主页,则用路由拦截器判断是否缓存的有token,没有则返回登录页。
全部评论
目前大多都这样做的吧,然后前端可以用状态机处理登录的事,前端把token放localStorage可以在token有效期内一直免登录。
点赞 回复 分享
发布于 2023-03-14 21:39 福建
老哥想问一下。。。怎么投瑞幸咖啡。
点赞 回复 分享
发布于 2023-03-14 19:37 广东

相关推荐

2025-12-22 17:15
门头沟学院 Java
1. 实习介绍2. HashMap底层数据结构- 链表树化的条件:当链表长度大于8且map容量超过64时,链表会进行树化。- 这样设计的原因:主要是结合内存开销和性能进行综合考虑。- 若key一直有冲突该如何处理?3. 介绍ConcurrentHashMap4. 说下CAS和synchronized锁的区别?5. Java的垃圾回收机制?6. 项目介绍- 数据存储是否为单表存储?表的数据上限是多少?能否存储一亿条数据?- 当单表超过5kw行或者容量超过2GB时,需考虑分库分表。- 订单表数据量较大时,如何选择分库分表键?是否了解分库分表?- 分库可以解决并发量大的问题,但数据库的连接数量有限,若进行分库,用户如何知晓请求该发送到哪台机器上?- 分表是将订单、物流、商品、会员等数据分别存放在独立的数据库中。7. MySQL底层数据结构?为什么采用B+树?为何不使用B树?8. 了解MySQL聚簇索引吗?有哪些方式可以避免回表操作?-  select id, name from table where name ='ls'  -- 不回表-  select * from table where name ='ls'  -- 回表9. 了解MVCC吗?它可以解决哪些问题?在不同隔离级别下,MVCC的处理方式有何差异?10. Redis在项目中的使用场景11. Redis除了实现分布式锁,还能有哪些应用?- 如何利用Redis进行限流?具体如何实现?
点赞 评论 收藏
分享
评论
10
37
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务