OAuth及第三方登录
现在的生活中运用互联网的有好多地方,我们既要申请微博,申请博客,申请邮箱等等;哪怕登录一个小网址看点东西都要注册登录,不过现在好多了;有了第三方登录,再也不用担心这不够用的脑子整天记忆账号和密码了,只要有qq,一般情况下都能解决,既方便又快捷。
我呢,这几天就开始接触这个东西,开始学,一边学一边记吧算是。
一.OAuth开放式授权
OAuth is short for Open Authorization
这个东西是什么呢,就是让第三方网站在不知道用户qq号和密码的情况下也能登录。下面就用一个图来说明一下它的运行机制吧

其特点就是开放 安全 简易
二、功能
OAuth1.0版本发布于2007年末:该版本有缺陷,曾经因为这个缺陷使一个公司损失巨大,现在已经不用。
OAuth2.0版本发布于2010年初:至今仍在使用。
QQ用户授权第三方网站使用其QQ账号相关的信息
获取授权后,在符合权限规则的情况下访问各种API;如一键分享。
第三方登录并不会将用户信息拷贝一份放在自己的数据库,那样大家都会觉得不安全了。只是利用了一个OAuth平台来完成这个功能
三、三个重要步骤
第三方页面请求QQ的OAuth页面
用户在OAuth页面输入qq号和密码
腾讯QQ的OAuth页面将登陆结果返回给第三方网站
(1)、请求OAuth登录页
Request Token URL--未授权的令牌请求服务地址
第三方网站请求QQ登陆页面时须使用带有特定参数的URL。
每个第三方网站接入QQ登陆之前需要到QQ互联官网注册一下(https://connect.qq.com/),提交一份申请的材料。说明一下接入站点的描述,域名,回调地址等。通过之后会得到一组APPID 和APPKEY.
例如以下地址:
https://graph.qq.com/oauth/......?......&client_id=100493579&......&redirect_uri=http:/www.weibo.com/......
这里的clirnt_id对应的就是APPID。OAuth页面可以通过这个APPID来判断这个站点是不是已经注册过的平台,并不是每个站点都可以使用。
(2)、用户使用QQ号登陆并授权
上面的redirect_uri就是回调地址,在用户登录成功后跳转的页面。
http://www.weibo,com/user.qqcallback?code=xxxxxxxxxxxxx.....
(3)、返回登录结果
在php页面可以获取上面地址中的code大致可以确定登录了。但是为了更加安全,所以需要第三方网站再次请求一个URL地址(用户授权的令牌请求服务地址);用户QQ登录授权之后需要请求 的一个带有特定参数的URL,这个URL中有参数APPID和APPKEY,又多了一个第三方站点与腾讯QQ的OAuth页面的交互,使code的传输更加安全。(code在有限时间内有效,一般时间不超过一分钟)
四、AccessToken
当登录之后第三方站点拿到一个当前用户的AccessToken,有这个AccessToken就可以调用相应的API了。每次访问API都要拼接一个URL,并且都要用上AccessToken作为令牌,为了安全也一般会 用POST方式。

可以将返回的数据用以下方法转换成PHP对象

AccessToken--具有较长生命周期(10天或者更长)
过期之后有两种方法重新获取:
1.重新用qq号登录
2.User Authorization URL中指定参数 ....&need_refresh_token=true&......意为在返回结果中需要携带一个AccessToken。
更加专业的术语我就不照搬了,我按照我理解的方式简单的说了一下这个第三方登录的前奏,想了解更多的OAuth知识的话可以
戳这里-->http://wiki.connect.qq.com/oauth2-0%E7%AE%80%E4%BB%8B
关于第三方登录我还会继续添加内容的,这只是个开始哦
OAuth及第三方登录的更多相关文章
- CocoaPods的安装及使用/利用开源库Diplomat实现分享及第三方登录/git的使用
<<史上最简洁版本>> 1.gem sources -l查看 当前的源 //1.1 sudo -i..以下都是以管理员的身份来操作的 2.gem sources --remov ...
- OpenID 和 OAuth 的区别及第三方登录的安全隐患分析
转自:http://itindex.net/detail/48552-openid-oauth-%E6%96%B9%E7%99%BB 发表时间:2014-03-13 19:09 | 作者:天梯梦 出处 ...
- Flask 微博三方登录
1.进入微博开发平台(https://open.weibo.com/),注册账号,填写开发者信息 2.创建应用.创建应用完成后,可以在"我的应用 - 应用信息"中查看您所创建应用的 ...
- PHP实现qq三方登录
除了qq第三方登录外.还有微博,微信等第三方登录 qq第三方登录,遵循oauth2.0协议 这里是说明http://www.cnblogs.com/yx520zhao/p/6616686.html q ...
- 微信、QQ、新浪微博等第三方登录,你想知道的都在这了(上) 微信、QQ、新浪微博等第三方登录,你想知道的都在这了(下)
微信.QQ.新浪微博等第三方登录,你想知道的都在这了(上):https://www.jianshu.com/p/133d84042483 微信.QQ.新浪微博等第三方登录,你想知道的都在这了(下):h ...
- SpringCloud微服务实战——搭建企业级开发框架(四十一):扩展JustAuth+SpringSecurity+Vue实现多租户系统微信扫码、钉钉扫码等第三方登录
前面我们详细介绍了SSO.OAuth2的定义和实现原理,也举例说明了如何在微服务框架中使用spring-security-oauth2实现单点登录授权服务器和单点登录客户端.目前很多平台都提供了单 ...
- 对QQ、微信等第三方登录的几个思考
转自:http://www.jianshu.com/p/7f282dfc16fc 今天聊聊注册.登录环节中很常见的第三方登录,如QQ.微信.支付宝.新浪微博等.虽然这些产品的开放平台都提供了标准的接入 ...
- ASP.NET MVC中三方登录: 微软、谷歌、Office365
创建一个MVC的工程,在Startup.Auth.cs文件中,我们能看到这样的一些代码: 这其实是微软已经帮我们实现好的三方登录的接口,我们只需要创建相应的开发者账号,并在其中配置好跟我们应用程序相关 ...
- AppDelegate减负之常用三方封装 - 友盟分享 / 三方登录篇
之前完成了 AppDelegate减负之常用三方封装 - 友盟推送篇: http://www.cnblogs.com/zhouxihi/p/7113511.html 今天接着来完成 - 友盟分享和三方 ...
随机推荐
- shell是什么,各种shell的初步认识,适用于初学者
shell是什么?有什么用处?怎么用?我相信,这是大部分人刚接触到shell都有过的疑问.下面小编为大家讲解一下自己的讲解,希望能对大家有所帮助. 什么是shell? shell就是系统内核的一层壳, ...
- 整合初步______SH
什么是框架 在的J2EE开发中,经常会提到"框架"这个词汇,例如Spring,Struts,Webx等等都称之为J2EE开发框架.那么,什么是框架呢? 框架的英文为Framewor ...
- iptables初探
一,前言 本来想起个名字叫做"小白都是怎么学习iptables的?"或者"你为什么还不了解iptables?"等等,就像简书上的头条文章,虽然被说成" ...
- 云计算之路-阿里云上:数据库连接数过万的真相,从阿里云RDS到微软.NET Core
在昨天的博文中,我们坚持认为数据库连接数过万是阿里云RDS的问题,但后来阿里云提供了当时的数据库连接情况,让我们动摇了自己的想法. 帐户 连接数 A 4077 B 3995 C 741 D 698 E ...
- JS关于全局变量跟局部变量的总结
一.Javascript的变量的scope是根据方法块来划分的(也就是说以function的一对大括号{ }来划分).切记,是function块,而for.while.if块并不是作用域的划分标准,可 ...
- Mybatis(一) mybatis入门
学习了hibernate这个持久层框架之后,在来学习Mybatis简直是无压力,因为Mybatis入门门栏很低,如果学习过了hibernate的话,对于Mybatis的学习很简单了,如果没学习过hib ...
- VS2015下OpenGL库的配置
写在前面: 最近要用到OpenGL,光是在VS2015下配置就费了很大的劲,现在将我的成果直接贡献给大家,希望能为需要在VS2015下配置OpenGL的读者省去一些麻烦. 正文: 资源地址1:http ...
- 在github上搭建免费的博客
github好多年前,大家都开始玩啦,我这个菜鸟近几年才开始.github不仅可以管理项目,还可以搭建博客.技术人员,一般用的博客为博客园,CSDN多一些.看到朋友们都弄一个,我也开始弄起来,先找点资 ...
- python scrapy 抓取脚本之家文章(scrapy 入门使用简介)
老早之前就听说过python的scrapy.这是一个分布式爬虫的框架,可以让你轻松写出高性能的分布式异步爬虫.使用框架的最大好处当然就是不同重复造轮子了,因为有很多东西框架当中都有了,直接拿过来使用就 ...
- git-ftp 用git管理ftp空间
ftp管理不能实现版本控制,而且多电脑工作时,同步很成问题. git-ftp可以完美的解决问题 下面是我的趟坑之路,本机的环境是win10,首先你的机器得装有git. git-ftp的地址https: ...