首页 » 互联网 » OAuth2.0怎么回事很简单_模式_用户

OAuth2.0怎么回事很简单_模式_用户

admin 2024-11-29 21:07:36 0

扫一扫用手机浏览

文章目录 [+]

无论哪种身份认证办法,只要用户通过了认证,这之后的访问过程中,只要我们没有主动登出,用户身份也没有过期,SSO(单点登录)也没有踢出你的身份,那始终是可以正常访问资源的。
在普通用户利用层面上是无感知的,他知道当前用的身份便是我自己,那么对付做事器是怎么判断当前访问资源的用户是谁呢?

做事端判断身份cookie、session

做事端在用户认证通过后,在 response 的 cookie 中加一个 JSESSIONID(随机标识)返回给前端,同时在做事端 session 中存储这个 id 对应的用户工具,这样在之后的要求中我们都能通过前端传来的 JSESSIONID 找到 session 中对应的用户数据,也就能知道是哪个用户访问资源了。

OAuth2.0怎么回事很简单_模式_用户 OAuth2.0怎么回事很简单_模式_用户 互联网

当然了,你假如头铁,完备也可以把用户工具序列化后放在 cookie 中回传给前端,后端在每次要求中解析这个 cookie,拿到用户数据,但估计你离被辞退也不远了。

OAuth2.0怎么回事很简单_模式_用户 OAuth2.0怎么回事很简单_模式_用户 互联网
(图片来自网络侵删)

由于 session 默认都是在本机存储的,这对付集群做事就麻烦了,获取不到对应的用户工具,后来就演化出在数据库、redis 等缓存中间件中存储 session 数据。
数据库存 session 性能比较差,现在基本都是缓存中间件来存储。

token(OAuth2.0)

一个字符串,比如 cdf62cb2-b6de-460c-8856-d9339d923012,可以根据它通过指定的查询办法,获取用户信息。
比如如果配置了通过 redis 获取,则这个 token 便是 key,获取的 value 便是用户信息。

实在这种办法跟 cookie 非常像,为什么又单独搞出一个 OAuth2.0 模式呢?由于 cookie 不能跨终端,某些用户设置浏览器不许可访问 cookie 也会失落效。
而 token 就不一样了,只是一个字符串,完备可以跨终端,而且保存在 js 中也不须要 cookie 支持。

JWT(JSON Web Tokens)

与 token 模式相同,只不过这里存储的不是 token 那么大略的字符串,而是一个包含有效数据的加密字符串,比如:BearereyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImNyZWF0ZWQiOjE1Nzg4OTgxNzIzNjQsImV4cCI6MTU3OTUwMjk3Mn0._PxIFHqBBx1RN1C3plyT8_9TepCs35lSU2P9n1jZ1Esvmi5yK2t6h4pl_QsRIBjFOam2TFxwln68lF2BEAcu5Q,精确解密后可以直接拿到用户信息,比如用户 id、用户名等等,就看你敢往里面塞多少内容了。
好处是不须要再次去别的地方查用户数据,坏处么,塞得东西越多,每次传输的内容就越大,而且是存储在客户真个,敏感信息不应该放在里面。

JWT 的构成

第一部分我们称它为头部(header),第二部分我们称其为载荷(payload, 类似于飞机上承载的物品),第三部分是签证(signature)。
第三部分是一个签证信息,这个签证信息由三部分组成:

header (base64 后的)payload (base64 后的)secretOAuth2.0 先容

OAuth2.0 的大略交互流程如下图:

这里简化了用户授权过程中后真个交互,由于 OAuth2.0 的授权模式有四种:

密码模式(resource owner password credentials)这种模式是最不推举的,由于客户端会知道用户密码支持 refresh token授权码模式(authorization code)这种模式算是正宗的 oauth2 的授权模式设计了 auth code,通过这个 code 再获取 token支持 refresh token简化模式(implicit)如图这种模式比授权码模式少了 code 环节,回调 url 直接携带 token不支持 refresh token客户端模式(client credentials)这种模式直接根据 client 的 id 和密钥即可获取 token,无需用户参与这种模式比较得当消费 api 的后端做事,比如拉取一组用户信息等不支持 refresh token

OAuth2.0直不雅观配置去这里看看

OAuth2.0要求验证过程看这里

标签:

相关文章

CSS3凸起,设计与美学的完美融合

随着互联网技术的飞速发展,网页设计逐渐成为一门融合美学与技术的艺术。在众多设计元素中,CSS3凸起效果以其独特的视觉效果和丰富的表...

互联网 2024-12-28 阅读0 评论0

CSS3缩放,介绍网页设计中的视觉魔法

随着互联网技术的飞速发展,网页设计越来越注重用户体验。在众多前端技术中,CSS3缩放功能无疑为设计师们提供了强大的视觉表现力。本文...

互联网 2024-12-28 阅读0 评论0

CSS3边线之美,探索视觉效果的无限可能

随着互联网技术的飞速发展,网页设计越来越注重视觉效果。CSS3边线作为一种重要的视觉元素,不仅能够丰富页面布局,还能提升用户体验。...

互联网 2024-12-28 阅读0 评论0

CSSA细线,引领时尚潮流的装饰元素

随着社会的发展,人们对于时尚的追求越来越高。在这个追求个性、追求品味的时代,装饰元素在时尚领域扮演着越来越重要的角色。CSSA细线...

互联网 2024-12-28 阅读0 评论0

CSSP标签,网页设计中不可或缺的基石

随着互联网的飞速发展,网页设计已成为当今社会的重要技能之一。在网页设计中,CSS(层叠样式表)扮演着至关重要的角色。其中,P标签作...

互联网 2024-12-28 阅读0 评论0