您的位置:首页 > 游戏 > 游戏 > 智慧团建团员登录网站_重庆市建设工程造价信息2020_广告营销方式有哪几种_seo技术代理

智慧团建团员登录网站_重庆市建设工程造价信息2020_广告营销方式有哪几种_seo技术代理

2024/10/6 14:21:32 来源:https://blog.csdn.net/ohligay/article/details/142705204  浏览:    关键词:智慧团建团员登录网站_重庆市建设工程造价信息2020_广告营销方式有哪几种_seo技术代理
智慧团建团员登录网站_重庆市建设工程造价信息2020_广告营销方式有哪几种_seo技术代理

一、概念:

1、什么是认证?什么是授权?

认证

用于在系统登录时,验证身份的凭证,类似于账号、密码等。

授权

用户在访问资源时,根据权限的不同对资源访问程度不同。

2、什么是cookie?什么是session?

cookie

cookies是网站为了区分用户而存储在用户本地终端的一些数据。存放于客户端,保存用户信息。

场景:

1、存储登录用户的用户名和密码,下次登录可以自动填入。

2、保存sessionID和Token,请求后端的时候带上cookies,后端就可以读取到session和token。

session

用于在服务端跟踪用户,记录该用户的状态。

场景:

登录系统之后,如果用户进行一些增改的操作,session可以标识并跟踪当前用户。

3、什么是JWT

全称JSON Web Token,目前最流行的基于Token的跨域认证解决方案。其自身包含了身份验证所需要的所有信息,因此,我们的服务器不需要存储 Session 信息。并且, 使用 JWT 认证可以有效避免 CSRF 攻击,因为 JWT 一般是存在在 localStorage 中,使用 JWT 进行身份验证的过程中是不会涉及到 Cookie 的。

二、结构

1、JWT组成部分

本质上是一个字符串,分为3部分,Header(头部)、Payload(载荷)、Signature(签名)。

Header:

定义了生成签名的算法以及 Token的类型。

Payload:

用来存放实际需要传递的数据,包含声明(Claims),如sub(subject,主题)。

Signature:

通过头部指定的签名算法生成的签名。

2、如何基于JWT做身份验证

  • 用户向服务器发送用户名、密码以及验证码用于登陆系统。

  • 如果用户用户名、密码以及验证码校验正确的话,服务端会返回已经签名的 Token,也就是 JWT。

  • 用户以后每次向后端发请求都在 Header 中带上这个 JWT 。

  • 服务端检查 JWT 并从中获取用户相关信息。

三、对比 

1、优势

  • 无状态:JWT 自身包含了身份验证所需要的所有信息,因此,我们的服务器不需要存储 Session 信息。

  • 避免CSRF攻击:跨站请求伪造。因为CSRF需要借助cookie,但是JWT在登录成功之后会存储在localstorage,过程中不涉及到cookie,所以可以避免CSRF攻击。

  • 适合移动端应用,因为使用session必须存储一份在服务端,这样的话需要依赖到cookie,因此不适合移动端的使用。

  • 单点登陆友好

2、缺点 

不可控:注销登录的场景下,JWT还有效。即使对权限做了修改,在JWT失效之前,都有效。

解决办法:

1、在redis中维护一个JWT名单/一个黑名单,通过比对判定是否失效,违背无状态原则。

2、修改密钥,为每个用户都创建一个专属密钥,如果我们想让某个 JWT 失效,我们直接修改对应用户的密钥即可。

3、设置更短的失效时间,经常更新,导致用户需要经常登录。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com