单点登录-第三方对接OAuth2.0-正在书写中ing

大家好,你是不是经常遇到这样的烦恼:每次想登录一个新的网站或者应用,都要重新输入用户名和密码,有时候还得设置各种密保问题,简直烦死个人了!
其实啊,有一个叫做“单点登录”的东西,就像是给你准备了一把“万能钥匙”,只要有了它,你就可以轻松打开多个应用的大门,再也不用为登录发愁了。而在这个“万能钥匙”里,有一个非常流行的“零件”叫做OAuth2.0,它能让第三方应用轻松对接到你的账户,让你在享受各种服务的同时,还能保证账号的安全。

在这篇文章里,我会用最简单的话,给大家讲讲单点登录和OAuth2.0是怎么一回事,怎么用它来对接第三方应用,让我们的在线生活更加便捷和安全。哪怕你是个技术小白,也能看得懂、学得会!大家一起来学习进步(作者也是小白>.<)

所以,如果你也对这个神奇的“万能钥匙”感兴趣,就跟我一起探索吧!相信我,学完之后,你会觉得登录这事儿,简直变得轻松又有趣啦!如果本文有什么还不太了解的或者聪明的大家有什么需要补充的也可以在评论区留言

单点登录

对接第三方

什么是OAuth协议

OAuth协议为用户资源的授权提供了一个安全又简易的标准。与以往的授权方式不同之处是
OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此
OAuth是安全的。 OAuth是 Open Authorization的简写
OAuth本身不存在一个标准的实现,后端开发者自己根据实际的需求和标准的规定实现。

其步骤一般如下

  1. 第三方(客户端)要求用户给予授权
  2. 用户同意授权
  3. 根据上一步获得的授权,第三方向认证服务器请求令牌( token)
  4. 认证服务器对授权进行认证,确认无误后发放令牌
  5. 第方使用令牌向资源服务器请求资源
  6. 资源服务器使用令牌向认证服务器确认令牌的正确性,确认无误后提供资源

OAuth2.0是为了解决什么问题?

任何身份认证,本质上都是基于对请求方的不信任所产生的。同时,请求方是信任被请求方的,例如用户请求服务时,会信任服务方。所以,
身份认证就是为了解决 身份的可信任问题。

在 OAuth2.0中,简单来说有三方:

  1. 用户(这里是指属于 服务方的用户)
  2. 服务方(如微信、微博等)
  3. 第三方应用(也就是所谓的客户端)

服务方不信任 用户,所以需要用户提供密码或其他可信凭据(用户需要用户密码登录) 服务方不信任
第三方应用,所以需要第三方提供自已交给它的凭据(如微信授权的 code,AppID等) 用户部分信任
第三方应用,所以用户愿意把自已在服务方里的某些服务交给第三方使用,但不愿意把自已在服务方的密码等交给第三方应用

OAuth2.0成员和授权基本流程
OAuth2.0成员:

  1. Resource Owner(资源拥有者:用户)
  2. Client (第三方接入平台:请求者)
  3. Resource Server (服务器资源:数据中心)
  4. Authorization Server (认证服务器)

OAuth2.0基本流程(步骤详解):

  1. Authorization Request, 第三方请求用户授权
  2. Authorization Grant,用户同意授权后,会从服务方获取一次性用户 授权凭据(如 code码)给第三方Authorization Grant
  3. 第三方会把 授权凭据以及服务方给它的的 身份凭据(如 AppId)一起交给服务方的向认证服务器申请 访问令牌Access Token,认证服务器核对授权凭据等信息,确认无误后,向第三方发送 访问令牌 Access Token等信息Access Token
  4. 通过这个 Access Token向 Resource Server索要数据Protected Resource
  5. 资源服务器使用令牌向认证服务器确认令牌的正确性,确认无误后提供资源

这样服务方,一可以确定第三方得到了用户对此次服务的授权(根据用户授权凭据),二可以确定第三方的身份是可以信任的(根据身份凭据),所以,最终的结果就是,第三方顺利地从服务方获取到了此次所请求的服务从上面的流程中可以看出, OAuth2.0完整地解决了 用户、 服务方、 第方在某次服务时这者之间的信任问题

SpringBoot整合OAuth2.0

略(开发中ing...写完以后会在这里粘贴进来的)

整合钉钉扫码登录

整合微信扫码登录

整合企业微信扫码登录

整合飞书扫码登录

整合QQ扫码登录

整合支付宝扫码登录

整合Gitee扫码登录

  • 25
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会为您解答。在上一篇博客,我们已经介绍了OAuth2.0的登录流程以及单点登录的实现方式。接下来,我将为您介绍OAuth2.0的登出流程。 在OAuth2.0的登出流程,与登录流程类似,也需要涉及到三个角色:用户、客户端和认证服务器。下面是OAuth2.0的登出流程: 1. 用户在客户端应用程序发起登出请求,客户端应用程序将请求转发给认证服务器。 2. 认证服务器接收到登出请求后,会将用户的会话标识从认证服务器的存储删除,并向客户端应用程序发回响应,告诉客户端应用程序用户已经登出。 3. 客户端应用程序接收到响应后,会清除本地存储的用户会话信息,并将用户重定向到认证服务器的登出页面。 4. 当用户在认证服务器登出页面上点击确认登出后,认证服务器会将用户重定向到客户端应用程序的登出回调URL,并在URL包含一个参数,表示用户已经登出。 5. 客户端应用程序接收到认证服务器的登出回调请求后,会清除本地存储的用户会话信息,并重定向用户到应用程序的登录页面。 需要注意的是,OAuth2.0的登出流程并没有提供单点登出的实现方式,因为OAuth2.0本身并不支持单点登出。如果需要实现单点登出,可以借助于其他的技术手段,比如使用Redis等缓存技术来实现单点登出。 好的,以上就是OAuth2.0的登出流程。希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值