OAuth 2.0实战(二)-为什么要先获取授权码code?(下)

简介: OAuth 2.0实战(二)-为什么要先获取授权码code?

授权码许可类型的通信过程

间接通信

间接通信就是指获取授权码的交互。

image.png我:“xx,我要访问你了。”

xx:“我把你引到授权服务,我需要授权服务给我一个授权码。”

授权服务:“xx,我把授权码发给浏览器了。”

小兔软件:“ 那我从浏览器拿到了授权码。”

xx和授权服务间,并无直接通信,而是通过中间人(浏览器).

直接通信

授权码换取访问令牌的交互,是“直接”的。

image.png

三方软件xx获取到授权码后,向授权服务发起获取访问令牌 access_token 的请求。

三方软件要代表资源拥有者去访问受保护资源

授权服务负责颁发访问令牌,受保护资源负责接收并验证访问令牌。

开发微信小程序场景

比如获取用户登录态信息的过程:


通过 wx.login(Object object) 获取登录凭证 code,该步是在小程序内部通过调用微信提供的 SDK 实现的

再通过该 code 换取用户的 session_key 等信息,即官方文档的 auth.code2Session 方法,同时该方法也是被强烈建议通过开发者的后端服务来调用


参考

https://leokongwq.github.io/2017/02/28/why-oauth2-use-authorization-code.html

https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html

https://segmentfault.com/q/1010000014642301

https://tools.ietf.org/html/rfc6749


目录
相关文章
|
8月前
|
存储 安全 API
深入了解OAuth 2.0:探究身份验证与授权的新标准
OAuth 2.0是一种开放标准的协议,用于安全地授权第三方应用程序访问用户的资源,而无需共享用户的凭据。这一协议在互联网上广泛应用,为许多应用和服务提供了强大的身份验证和授权机制。本文将深入介绍OAuth 2.0,探讨其工作原理、关键概念和常见用途。
|
XML JSON 安全
OAuth vs SAML vs OpenID:了解它们之间的差异
身份验证允许进入系统,而授权允许访问同一系统内的特定功能。安全断言标记语言 (SAML) 是一种开放标准,它试图弥合身份验证和授权之间的鸿沟。
|
Java
isv.code-invalid(授权码code无效)-自查方案
说明:  针对商户测试第三方应用授权、用户信息授权、获取会员信息等产品时,报错“isv.code-invalid(授权码code无效)”的问题。 第三方应用授权正式环境拼接规则: https://openauth.
3781 0
|
5月前
|
存储 应用服务中间件 API
Oauth 2 授权码模式
Oauth 2 授权码模式
81 1
|
5月前
|
存储 缓存 前端开发
自定义OAuth2组件实现对授权码登录模式的封装
所谓OAuth2其实就是Open Authorization,即开放授权,是一种授权机制或者说是一种协议。OAuth2允许用户授权第三方应用访问其存储在开放平台(授权服务器)中的数据而不需要提供密码。授权服务器根据OAuth2协议标准制订一套授权的API,第三方网站接入开放平台之后即可通过其提供的API来实现用户授权和获取授权服务器中用户的信息的功能。
|
7月前
|
API
如何获取 kaggle 用户的用户名和API密钥(key)
如何获取 kaggle 用户的用户名和API密钥(key)
193 0
|
9月前
|
安全 Java 数据库
SecurityOauth2密码模式/oauth/token探究
SecurityOauth2密码模式/oauth/token探究
257 0
|
存储 JSON 安全
OAuth 详解<2> 什么是 OAuth 2.0 授权码授权类型?
授权代码授权类型可能是您将遇到的最常见的 OAuth 2.0 授权类型。Web 应用程序和本机应用程序都使用它在用户授权应用程序后获取访问令牌。 这篇文章是我们探索常用的 OAuth 2.0 授权类型系列文章的第一部分。如果您想在深入了解 OAuth 2.0 之前稍微回顾一下并了解更多信息,请查看OAuth 到底是什么?
103 0
OAuth 详解<2> 什么是 OAuth 2.0 授权码授权类型?
|
安全 Java 数据库
案例之授权码模式测试|学习笔记
快速学习案例之授权码模式测试
151 0
案例之授权码模式测试|学习笔记
|
安全 开发工具
如何通过 ASWebAuthenticationSession 获取身份验证 code 码
项目中需要实现 GitHub、Google、Apple 第三方登录,实现第三方登录登录方案有三种:
173 0