您好!欢迎访问家园网-www.jy.wang!

家园网

词源角度讲一下oAuth,在编程领域是啥意思

网络 作者:本站 点击:

从词源和编程领域两个角度来解析 OAuth


一、词源角度

OAuth 是一个合成词,由两部分组成:

  1. O → 通常认为是 Open(开放的)的缩写,强调这是一个开放标准、公开可用的协议,不依赖特定厂商或系统。

  2. Auth → 来自英文 Authentication(认证)或 Authorization(授权)的词根。

虽然 OAuth 全称没有官方明文定义,但业内普遍理解它为 Open Authorization(开放授权)的缩写。

  • 注意:OAuth 主要解决的是 授权(Authorization) 问题,而不是用户身份认证(Authentication)。但在实际使用中,常配合 OpenID Connect 来同时完成认证。


二、编程领域的含义

OAuth 是一个开放标准的授权协议(当前主流版本为 OAuth 2.0),允许用户授权一个第三方应用(如某网站或App)有限制地访问自己在另一个服务提供方(如微信、GitHub、Google)上存储的资源(如用户资料、照片),而不需要把用户名和密码直接交给第三方应用

核心角色(简化版):

  • 资源拥有者:用户本人。

  • 客户端:第三方应用(想访问用户数据)。

  • 授权服务器:负责颁发访问令牌。

  • 资源服务器:存放用户数据的地方。

工作流程(类比):

你(用户)去停车场取车,不想把车钥匙给代客泊车员,但需要他帮你开车。
于是你给他一张限时、仅能开车门和启动发动机的专用令牌
这就是 OAuth 的思路:用令牌(Token)代替密码。


三、在编程中的实际作用

  • 免密授权:用户可以用“微信登录”某个论坛,论坛不会拿到你的微信密码。

  • 权限可控:你可以选择只授权读取昵称,不授权发表朋友圈。

  • 令牌可撤销:随时可以取消第三方应用的访问权限。

  • 广泛应用:几乎所有大型互联网服务(Google、GitHub、微软、支付宝等)的 API 都支持 OAuth 2.0。

常见开发场景:

  • 网站集成 “使用 GitHub 登录”

  • 手机App请求访问 Google Drive 中的文件。

  • 企业应用通过 OAuth 获取 企业微信 的成员信息。


总结(一句话)

OAuth 就是“给你一把临时钥匙(令牌)代替原始密码”的开放授权协议


标签: