一、服务器怎么判断用户的登录状态?
1、简单分为这么几步:
- 用户通过浏览器访问网站,服务器接受到请求后,生成一个有时长限制的
秘密口令
,返回给用户,同时服务器也有备份了秘密口令
; - 浏览器接受到
秘密口令
并保存到本地; - 用户再次使用浏览器发出请求时,会取出
秘密口令
一起发送给服务端; - 服务器接受到
秘密口令
后,就开始在备份中寻找,有没有相同的且没有过期的秘密口令
。如果有,那么说明用户已经登录。
2、Session 与 Cookie
- Session:是上面提到的 服务端 生成和存储
秘密口令
的过程; - Cookie:是上面提到的 浏览端 存储和发送
秘密口令
的过程;
二、具体实现过程
1、浏览器 怎么接收 服务器 生成的 秘密口令
?
浏览器 和 服务器 之间是通过 HTTP 或 HTTPS 协议进行传输数据的,那么就在 HTTP 协议的 Header 增加一个字段用来传输 秘密口令
,这个字段就是 Set-Cookie
,浏览器会自动保存此字段的数据。
2、服务器 怎么接收 浏览器 回传的 秘密口令
?
浏览器 会在 HTTP 协议的 Header 增加一个字段用来发送 秘密口令
,这个字段就是 Cookie
,服务器通过此字段来接收 秘密口令
并进行下一步操作。
3、怎么保证其传输的安全性?
为了增加安全性,就给这个 密码口令 增加了很多属性,譬如:Secure 、 HttpOnly、Domain、Path等,通常我们把 密码口令
+ 属性
这个格式的数据称之为 Cookie。Cookie 使用有其相应的规则,详情看这里!
三、怎么使用 session 到项目中?
可以通过现有的一些 库 来增加session到项目中,下面推荐几个不同场景下的 session 库:
1、Redis
2、express-session
Node.js 项目中,如果使用了express 开发的 web 服务,可以使用他来实现session。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。