常见的几种身份验证方法
在做项目时,我们常常会对登陆用户的合法性进行判断,接下来我就给大家介绍几中常见的身份验证的方法。
1.session校验
最先是session校验,这块一般是初学者最先做的一种校验方式,同时也是比较消耗服务器内存的一种方式。
✒️流程:
-
客户端发送登陆者的用户名以及密码,服务器接受到用户名和密码。
-
服务器接受到转过来的用户名和密码后,先逻辑判断,假如通过则生成一个session和一个cookie,同时cookie里有一个
sessionId
,其值为生成的session的唯一身份编号,目的就是下次可以通过cookie直接找到session。 -
服务器将cookie返回给客户端保存。
-
客户端拿到cookie后,以后每次发起请求时都需要携带cookie发起请求。
-
服务器接受到cookie后,先去根据cookie的
sessinId
找在服务器保存的session,然后进行判断。若判断身份没问题,则返回对应数据,否则返回错误响应。
2.token校验
token校验就更高阶一点了,一般在做vue项目的时候,会配合token或者JWT做校验。而且token校验不用保存在服务器上,这样就大大减轻了服务器的内存消耗。
✒️流程:
- 客户端发送用户名和密码,交给后台验证。
- 服务端拿到用户名和密码后,会进行判断,若验证通过的话,则会生成一个包含用户信息的token字符串,然后传回给客户端。
- 客户端拿取到token字符串,一般是会先本地保存,然后再解析。在这之后,每次的数据请求就必须在请求头中包含信息,这样服务端会对token进行验证,验证通过才会返回对应的数据,否则就会返回错误信息。
3.JWT验证
Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。
在数据传输过程中,还可以完成数据的加密,签名相关处理
。
拓展
cookie我们一般不用它做验证登陆,它的安全系数不高,而且可以直接js直接获取内容(尽管可以设置
httponly
但我们也还是不要用它)。