阅读 48

OAuth 2.0 第三方登录-微信授权

是什么

OAuth2.0 是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,u

OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。授权框架使得第三方可以获取对用户资源的访问

举个栗子:u

通过你的允许, bilibili 可以去微信服务器获取你的头像,昵称,openId 等等,

但你无需提供账号密码给 bilibili, 且 bilibili 对你的信息保存也有一定期限,超过这个期限的话,需重新获取授权进行登录。

 

为什么

传统授权方式,用户和第三方共享密码,缺点如下:

1. 未来可能持续需要访问各种受限资源,所以第三方要存储用户密码,一般情况密码是明文,显然不安全;

2. 第三方将可以访问所有的资源,而实际上它只应当访问部分资源;

3. 用户不能撤销单个的第三方的访问权限,如果要改密码,所有的第三方都会失效。

 

 

流程示意图: 用户通过微信登录的方式登录bilibili:

 

1. bilibili 提供一个 “微信登录” 的 auth2  的链接, 用户点击跳转到微信授权服务器;

2. 用户根据微信授权服务器提示,通过微信登录的方式授权给bilibili;

3. 微信授权服务器返回用户代理(浏览器)一个授权码 wxCode,用户代理把这个授权码传给 bilibili;

4. bilibili 凭借授权码向微信授权服务器请求令牌;

5. 微信授权服务器发送令牌给 bilibili;

6. 微信授权服务器发送令牌给 bilibili

之后 bilibili 就可以带着令牌去微信资源服务器读取用户资料。

 

 

【名词解释】:

1. 资源服务器: 保存用户信息的服务器并且能够验证令牌是否合法,如微信服务器;

2. 授权服务器: 发送令牌给第三方的服务器(可以和资源服务器是同一个);

3. 客户端: 第三方应用程序,如:bilibili;

 

原文:https://www.cnblogs.com/edwardwzw/p/12963738.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐