在上文中,我们使用单点登录完成了多产品的登录态共享,但都是建立在一套统一的认证中心下,对于一些小型企业,未免太麻烦,有没有一种登录能够做到开箱即用?
其实是有的,很多大厂都会提供自己的第三方登录服务,来分析一下。
image.png

🥇 OAuth 机制实现流程

这里以微信开放平台的接入流程为例:

  1. 1. 首先,a.com 的运营者需要在微信开放平台注册账号,并向微信申请使用微信登录功能。
  2. 2. 申请成功后,得到申请的 appidappsecret
  3. 3. 用户在 a.com 上选择使用微信登录。
  4. 4. 这时会跳转微信的 OAuth 授权登录,并带上 a.com 的回调地址。
  5. 5. 用户输入微信账号和密码,登录成功后,需要选择具体的授权范围,如:授权用户的头像、昵称等。
  6. 6. 授权之后,微信会根据拉起 a.com?code=123 ,这时带上了一个临时票据 code
  7. 7. 获取 code 之后, a.com 会拿着 code appidappsecret,向微信服务器申请 token,验证成功后,微信会下发一个 token
  8. 8. 有了 token 之后, a.com 就可以凭借 token 拿到对应的微信用户头像,用户昵称等信息了。
  9. 9. a.com 提示用户登录成功,并将登录状态写入 Cooke,以作为后续访问的凭证。

image.png