OAuth 详解
Problem 核心问题: "我怎样才能允许应用程序访问我的数据而又不必向其提供密码?" OAuth 是 REST/API 的委托授权框架。它允许应用获得对用户数据的有限访问权限(范围),而无需泄露用户的密码。它将身份验证与授权分离开来,并支持针对不同设备功能的多种用例。它支持服务器到服务器的应用、基于浏览器的应用、移动/本机应用以及控制台/电视。 您可以将其视为酒店钥匙卡,但适用于应用程序。如果您有酒店钥匙卡,则可以进入您的房间。如何获取酒店钥匙卡?您必须在前台进行身份验证才能获得它。通过身份验证并获取钥匙卡后,您可以访问整个酒店的资源。 简单来说,OAuth 是 (以照片打印程序 PhotoApp 为例) 应用程序向用户请求授权: PhotoApp 向 Alice 请求要访问 Alice 的照片 用户授权App并提供证明: PhotoApp 向 Alice 申请我授权访问她的 QQ 相册, 而 Alice 授权 PhotoApp 这一请求 应用程序向服务器提供授权证明以获取令牌: PhotoApp 向 QQ 相册提供 Alice 的授权证明 Token 仅限于访问用户为特定应用授权的内容 QQ 相册发给 PhotoApp 访问 Alice 相册图片的访问令牌 access token OAuth 流程中的参与者如下: 资源所有者 Resource Owner(RO):拥有资源服务器中的数据。例如,Alice 是她的 […]