作为开发人员,免不了要使用 API 接口,获得授权,但是授权必须安全,才能保证开发人员和用户的隐私不被侵犯与泄露,OAuth 2.0 的创建就是为了应对许多现代数字隐私裸奔困境。OAuth 2.0 作为一种开放标准的授权协议,允许网站和应用程序安全地使用 API,为应用程序提供“安全指定访问”的能力。
OAuth 不需要共享用户名和密码等相关数据,而是使用授权令牌来证明使用者和服务提供商之间的身份,允许用户授权一个 APP 访问另一个 APP 的身份信息。
举例来说,比如我们想用微信登录网易云音乐,网易云音乐会向微信发出登录请求,系统会跳转到微信登录页面,点击授权并登录,用户就可以登录了。
OAuth 2.0 有四种授权模式:
- 授权码(Authorization-code):指的是第三方应用先申请一个授权码,然后再用该码获取令牌。该方式是最常用的流程,安全性也最高,它适用于那些有后端的 Web 应用。
- 隐藏式(Implicit):该模式面向纯前端应用,App 认证服务器只返还一次授权码。
- 密码式(Password):允许客户端或者第三方应用,直接使用用户的账号密码进行令牌的获取。该方式在用户端应用广泛。
- 凭证式(Client credentials):适用于没有前端的命令行应用,即在命令行下请求令牌。该方式操作简单,只需要发送客户请求,即可获得访问令牌(Access Token),但这种方式非常不安全,需要对客户端完全信任,且客户端本身需要具备安全性。
常见的 OAuth 2.0 授权流程如下:
- 在你的应用中,让用户访问登录链接,浏览器跳转到 Authing,用户在 Authing 完成认证。
- 浏览器接收到一个从 Authing 服务器发来的授权码。
- 浏览器通过重定向将授权码附带在重定向地址后面。
- 你的应用服务将授权码发送到 Authing 获取 AccessToken,如果需要,还会返回 refresh token。
- 你的应用后端现在知道了用户的身份,后续就可以保存用户信息,重定向到前端其他页面,使用 AccessToken 调用资源方的其他 API 等等。
Authing 身份云国内首款以开发者为中心的全场景身份云产品,集成了所有主流身份认证协议,为企业和开发者提供完善安全的用户认证和访问管理服务,已帮助 20,000+ 家企业和开发者构建标准化的用户身份体系。
Authing 既是客户的支持者,也是客户的产品专家和战略顾问,更是值得信赖的合作伙伴。我们提供全球化的身份专家支持团队,通过网络或电话,7*24 小时不间断支持。Authing 的帮助中心提供最新的技术知识库、商业案例以及与您的同行和 Authing 专家联系的机会。无论您何时需要我们,Authing 的支持团队总能最快响应。
2022 年,Authing 将秉承着致力于客户成功的初衷,帮助推动客户重要业务,为实现身份连通、打破数据孤岛而不懈努力。