一次性讲清OAuth2.0授权

文章目录

    • 什么是OAuth2.0授权
    • OAuth2.0工作原理
    • OAuth2.0应用示例
    • OAuth2.0授权模式
      • 授权码模式
      • 简化模式
      • 设备码模式
    • 如何申请应用及密钥等信息

什么是OAuth2.0授权

OAuth2.0是一种用于授权的开放标准,它允许用户授权第三方应用访问其在另一个应用中存储的信息,而无需将用户名和密码提供给第三方应用。
OAuth2.0通过令牌的方式来实现授权,令牌可以限制第三方应用的访问权限和有效期。
OAuth2.0的出现解决了用户在使用第三方应用时需要提供用户名和密码的安全隐患,同时也提供了一种标准的授权机制,使得第三方应用可以安全、高效地访问用户的资源。

OAuth2.0工作原理

一次性讲清OAuth2.0授权_第1张图片

OAuth2.0应用示例

  • 网站应用微信登录 https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html

  • 微博授权登录https://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6

  • E签宝企业认证授权https://open.esign.cn/doc/opendoc/seal-open-api/mhg76c#L456v

  • 企业微信网页授权登录 https://developer.work.weixin.qq.com/document/path/91119

  • 多个服务的统一登录认证中心,支付宝账号可以授权访问阿里旗下的网站

OAuth2.0授权模式

(百度网盘为例)

授权码模式

一次性讲清OAuth2.0授权_第2张图片1.用户选择通过百度账号登录开发者应用。
2.开发者应用发起授权码 Code 请求。
3.百度 OAuth 服务器展示授权页面给用户,用户登录并同意授权。
4.用户同意授权后,百度 OAuth 服务器会将页面跳转至开发者应用配置的回调地址,返回授权码 Code。
5.开发者应用发起 Code 换取 Access Token 请求。
6.百度 OAuth 服务器返回 Access Token 凭证。

简化模式

一次性讲清OAuth2.0授权_第3张图片
相比授权码模式,简化模式不需要获取授权码 Code,直接获取 Access Token 凭证。
简化模式不支持刷新 Access Token,过期后需用户重新登录授权。
简化模式适用于无 server 端配合的应用。

1.用户选择通过百度帐号登录开发者应用。
2.开发者应用发起获取 Access Token 请求。
3.百度 OAuth 服务器展示授权页面给用户,用户登录并同意授权。
4.用户同意授权后,百度 OAuth 服务器返回 Access Token 凭证。

设备码模式

1.开发者应用请求设备码、用户码。
2-3.百度 OAuth 服务器返回设备码、用户码、二维码url。
4.开发者应用根据二维码url呈现二维码,用户通过手机等智能终端扫描二维码。
这里开发者应用也可选择根据授权url(2-3会返回授权url),呈现用户输入用户码的页面,用户输入用户码实现对设备授权。
5.为用户返回授权页面,用户登录百度帐号并授权。当用户使用已登录百度帐号的设备扫描二维码时,无需登录直接授权。
6.用户完成授权后,开发者应用周期性用第1步返回的设备码请求 Access Token 凭证。
7.百度 OAuth 服务器在用户确认授权后,返回 Access Token。

如何申请应用及密钥等信息

  1. 去相应的开放平台申请应用
  2. 应用详情中可查看到应用的id、key、secret
  3. 安全设置中可设置授权回调地址等信息

你可能感兴趣的:(java,java,微信开放平台)