java1234开源博客系统
博客信息

OAuth 2.0简介

发布时间:『 2019-01-21 15:13』  博客类别:QQ第三方登录  阅读(4457) 评论(0)

OAuth 2.0简介


     为了简化网站和应用的注册登录开发,第三方登录横空出世,比如QQ登录,微信登录,微博登录等等;

第三方登录也叫做第三方授权,相应的规范是OAuth 2.0;每家提供第三方登录的大型互联网公司都有具体实现,原理一致,大体过程一致,细节有差别;

   

    这里我们先了解下OAuth 2.0原理;

    OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。 OAuth 2.0关注客户端开发者的简易性。要么通过组织在资源拥有者和HTTP服务商之间的被批准的交互动作代表用户,要么允许第三方应用代表用户获得访问的权限。同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程。2012年10月,OAuth 2.0协议正式发布为RFC 6749 [1]  。


   1.jpg


在认证和授权的过程中涉及的三方包括:

1、服务提供方,用户使用服务提供方来存储受保护的资源,如照片,视频,联系人列表。

2、用户,存放在服务提供方的受保护的资源的拥有者。

3、客户端,要访问服务提供方资源的第三方应用,通常是网站,如提供照片打印服务的网站。在认证过程之前,客户端要向服务提供者申请客户端标识。

使用OAuth进行认证和授权的过程如下所示:

用户想操作存放在服务提供方的资源。

用户登录客户端向服务提供方请求一个临时令牌。

服务提供方验证客户端的身份后,授予一个临时令牌。

客户端获得临时令牌后,将用户引导至服务提供方的授权页面请求用户授权。在这个过程中将临时令牌和客户端的回调连接发送给服务提供方。

用户在服务提供方的网页上输入用户名和密码,然后授权该客户端访问所请求的资源。

授权成功后,服务提供方引导用户返回客户端的网页。

客户端根据临时令牌从服务提供方那里获取访问令牌。

服务提供方根据临时令牌和用户的授权情况授予客户端访问令牌。

客户端使用获取的访问令牌访问存放在服务提供方上的受保护的资源。


QQ第三方登录实现大体过程:

Step1:接入申请,获取appid和apikey;

Step2:放置QQ登录按钮;

Step3:通过用户登录验证和授权,获取Access Token;

Step4:通过Access Token获取用户的OpenID;

Step5:调用OpenAPI,来请求访问或修改用户授权的资源。


具体参考:百度百科  腾讯开放平台


锋哥要说:大体原理了解,大体流程了解,看后面我的一顿猛操,就几步搞定,坑我都已经填平了;




关键字:   OAuth2     QQ登录  
关注Java1234微信公众号
博主信息
Java1234_小锋
(知识改变命运,技术改变世界)
Powered by Java1234 V3.0 Copyright © 2012-2016 Java知识分享网 版权所有