为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第12天 cookie 和 session 实现登录

标签:
Node.js

课程章节:第3章 技术选型和知识点介绍(下) 3-6

课程讲师双越

课程内容

使用 session 实现登录的机制

session表示一次会话,在服务端是一个集合。我们使用session存储和用户相关的信息,那么服务器怎么知道当前用户是哪个session呢?使用cookie。

浏览器访问服务器,会携带cookie。将一个 userId 属性存到cookie中,在服务端拿到cookie中的userId,再到session 集合中,找到这个userId,就能确定用户的身份了。

图片描述

为什么把 session 存到 redis 中?

如果session存在nodejs进程中,设置一个变量来保存session,来一个用户就往里塞,那么它占用的内存会越来越大。但是,操作系统会限制每一个进程的最大可用内存。比如在32位系统中,node 进程的最大可用内存是0.7g,如果64位系统,最大可用内存是1.4g。所以,如果把session放到内存中,是没法保证性能和稳定性的

服务器的内存可能是8g,16g,甚至更大,但它给一个node进程的最大可用内存也就1个多g。如果开启多个进程的 nodejs,虽然看起来 session 可用的内存多了,但进程之间的数据是隔离的,如果用户先访问了进程1,存储了session,过了一会又访问了进程2,此时该进程中的session并没有用户的数据。

基于以上两个原因,我们把session存到redis 中

图片描述

图片描述

课程收获

这节课学习了实现登录功能的理论知识和技术原因,比较偏底层,对于扩展知识面很有帮助。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
2
获赞与收藏
4

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消