微信授权背后认证机制图解OAuth认证原理当你点击“微信授权”或“允许某应用访问

量子位看科技 2025-08-26 15:46:00

微信授权背后认证机制图解OAuth认证原理

当你点击“微信授权”或“允许某应用访问账户”,背后其实就是OAuth认证,在默默保障数据的安全。

OAuth认证,可以让用户可以授权第三方服务访问自己的数据,而无需将账号密码交给对方。

也就是说,你可以“允许”一个应用获取你的信息,但整个过程中账号密码始终掌握在你手里。

用YNAB(一款理财工具)连接Chase银行的例子,就能清楚理解OAuth的运作流程。

这个过程分为两个关键部分:1.用户授权;2.后端安全通信。

一、用户授权流程(User Consent Flow):让用户参与并控制授权过程

整个流程从用户点击“连接银行”开始:

- 用户在YNAB中点击“连接Chase” → 页面跳转到Chase【图1】

- 用户在Chase登录自己的账户

- 用户选择授权范围(如:仅查看账户信息)

- Chase验证身份后,跳转回YNAB,同时附带一段授权码(authorization code)

这个阶段,用户始终在Chase的官方页面上操作,输入账号密码的过程完全不经过YNAB。这是OAuth的第一道安全防线,防止第三方应用窃取用户凭证。

二、授权码交换流程(Authorization Code Flow):在后端安全地获取access token

拿到授权码之后,YNAB还需要向Chase后台发送一条请求,才能换取真正的访问凭证——access token【图2】。整个过程包括:

- YNAB携带授权码和自己的身份凭证(client ID和client secret)

- 向Chase的授权服务器发送加密POST请求

- 成功后,获得access token

由于这一步完全在后端完成,并且通过加密通信传输,因此即使网络中被监听,access token也不会被轻易盗取。这是第二道安全防线。

三、OAuth核心角色与术语解析【图4】【图5】:

理解OAuth需要掌握四个核心角色:

- resource owner:资源拥有者(即用户本人)

- OAuth client:请求访问权限的第三方应用(如YNAB)

- authorization server:负责身份验证和授权的服务(Chase)

- resource server:保存用户数据、响应API请求的服务(同样是Chase)

四、流程图解:前端+后端合力完成安全授权

整个OAuth授权流程可以拆解为两张图:

- 【图6】前端流程:用户跳转、登录并同意授权

- 【图7】后端流程:服务器间通过授权码换取access token

这两部分缺一不可,共同构成一次完整、安全的授权操作。

五、开发者接入OAuth的准备工作【图8】:

要集成OAuth,第三方开发者需提前注册自己的应用:

- 提交App名称、图标、回调地址等信息

- 获取client ID与client secret

- 配置合法回调地址,防止钓鱼攻击

六、发起OAuth请求时需要包含的参数【图9】:

每次引导用户授权时,需要构造一个跳转链接,其中包含:

- client ID:标识是哪一个应用发起的

- redirect URI:用户授权后跳转回来的地址

- response type:通常为“code”

- scopes:请求访问的权限范围(如读取账户、查看交易等)

这些信息共同生成“XXX应用想要访问你的账户信息”的授权页面,用户看到的正是这些参数组合的结果。

七、URI与URL的区别【图10】:

- URL是最常见的网址格式,是URI的一种;

- 对于没有传统网址的移动应用,可以通过自定义协议使用URI;

- 因此OAuth文档使用“URI”一词,是为了同时兼容Web和移动端。

看懂这个流程,就能理解现代互联网是如何在“安全”与“便利”之间找到平衡的。

原文链接:www.ducktyped.org/p/an-illustrated-guide-to-oauth

0 阅读:0
量子位看科技

量子位看科技

感谢大家的关注