OAuth : open Authorization 开发授权
OAuth : open Authorization 开发授权 用户访问慕课网,慕课网请求OAuth登陆页面,用户输入QQ号码和密码,这个页面的域名不属于慕课网是属于QQ的,随后把结果给慕课网,这个结果并不包含QQ号码,只是告诉慕课网当前用户是否登陆成功。

OAuth有2个版本。1.0 和 2.0
.0发布于2007年
.0发布于2010年 OAuth:
.QQ用户授权慕课网使用QQ账号登陆
.使用QQ的API一键分享
.一个淘宝账号可以登陆淘宝所有其旗下的网站(阿里云、支付宝)。

不仅仅慕课需要QQ登陆功能,还有很多网站也要QQ登陆功能。需要提供网站站点的描述、域名、回调地址,QQ会给慕课网分配appid和appkey,就好像是账号和密码一样,appid是唯一的。

Redirect_uri是用户成功登陆之后跳转到哪里去,跳转过程中会加一个code参数,慕课网可以拿到这个code,这个code也会被别人获取,

client_id和cilent_secret是appid和appkey,code是用户授权登陆之后拿到的参数,code是会过期的5秒到一分钟,时间太长就会认为出现了问题。劫持到code必须在很短时间内破解,并且还要找到appid和appkey不是很容易的事情。再次检验了这个请求是不是合法的服务器发起的请求,对appkey做了比对,并看这个code是不是上个步骤发给慕课的code。这个请求的响应就是用户的QQ号码和头像。


Token是令牌,通行证。
第三方站点获取了用户的token,就可以QQ分享等功能了。
任意一次访问api都需要重新拼接url,并且url中带有accesstoken,访问同一个接口动态拼接出来的url都不一样。Post请求更安全。

AccessToken也有生命周期,但是比code时间长,一般是10天半个月几个小时,AccessToken只要没过期就可以一直使用AccessToken来访问api。
AccessToken过期:、重新使用QQ号码登录。、如果需要新的AccessToken,就携带参数要求重新分配新的AccessToken。


当QQ登陆完成后会返回一个code(字符串)到指定的回调地址上,然后根据code请求AccessToken(字符串),code是有有效时间的。AccessToken过期了会通过refresh_token换取新的AccessToken。换取新的AccessToken和第一次获取AccessToken是差不多的。 openID是每个用户的唯一标识,同一个QQ用户在不同站点使用QQ登陆的openID是一样的。 授权过程完成了,后面就是通过AccessToken和openID来调用api。AccessToken和openID可以放到cookie里面去,AccessToken的有效时长是保存在session里面,

自己的web应用请求新浪微博的登陆页面,用户输入微博的账号密码,登陆成功之后返回一个有效时间很短的code给自己的web应用,动态拼接code+appid+appkey给新浪,返回AccessToken给自己的应用,就可以通过AccessToken在有效期内以用户的身份调用api。
OAuth : open Authorization 开发授权的更多相关文章
- [转]OAuth 2.0 - Authorization Code授权方式详解
本文转自:http://www.cnblogs.com/highend/archive/2012/07/06/oautn2_authorization_code.html I:OAuth 2.0 开发 ...
- OAuth 2.0 - Authorization Code授权方式详解
I:OAuth 2.0 开发前期准备 天上不会自然掉馅饼让你轻松地去访问到人家资源服务器里面的用户数据资源,所以你需要做的前期开发准备工作就是把AppKey, AppSecret取到手 新浪获取传送门 ...
- asp.net权限认证:OWIN实现OAuth 2.0 之授权码模式(Authorization Code)
asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证 ...
- SimpleSSO:使用Microsoft.Owin.Security.OAuth搭建OAuth2.0授权服务端
目录 前言 OAuth2.0简介 授权模式 (SimpleSSO示例) 使用Microsoft.Owin.Security.SimpleSSO模拟OpenID认证 通过authorization co ...
- Microsoft.Owin.Security.OAuth搭建OAuth2.0授权服务端
Microsoft.Owin.Security.OAuth搭建OAuth2.0授权服务端 目录 前言 OAuth2.0简介 授权模式 (SimpleSSO示例) 使用Microsoft.Owin.Se ...
- OAuth 2.0 开发完全详解
--------------------------基础篇------------------------------- I:OAuth 2.0 概述 首先大家来看看国内新浪跟腾讯这两大头对OAuth ...
- springboot oauth 鉴权之——授权码authorization_code鉴权
近期一直在研究鉴权方面的各种案例,这几天有空,写一波总结及经验. 第一步:什么是 OAuth鉴权 OAuth2是工业标准的授权协议.OAuth2取代了在2006创建的原始OAuthTM协议所做的工作. ...
- OAuth 2.0之授权码模式
转载自:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html OAuth 2.0授权码模式 授权码模式(authorization code)是功 ...
- Spring Authorization Server授权服务器入门
11月8日Spring官方已经强烈建议使用Spring Authorization Server替换已经过时的Spring Security OAuth2.0,距离Spring Security OA ...
随机推荐
- [分布式系统学习] 6.824 LEC1 MapReduce 笔记
什么是Map-Reduce呢? Map指的是一个形如下面定义的函数. def Map(k, v): //return [(k1, v1), (k2, v2), (k3, v3), ...] pass ...
- 通过IFeatureClass 接口查询 IWorkspace, 查询通配符
IWorkspace pWsI = ((IDataset)pFtCls).Workspace 查询通配符 ISQLSyntax psqls = (ISQLSyntax)(((IDataset)pFtC ...
- Python通过正则表达式去除(过滤)HTML标签,提取文字
# -*- coding: utf-8-*- import re ##过滤HTML中的标签 #将HTML中标签等信息去掉 #@param htmlstr HTML字符串. def filter_tag ...
- vue报错/ style-loader: Adds some css to the DOM by adding a <style> tag
1.1.1. vue-cli搭建的项目引入.styl/css文件报错 http://blog.csdn.net/z852064121/article/details/72660327 / styl ...
- FastJson 对enum的 序列化(ordinal)和反序列化
目前版本的fastjon默认对enum对象使用WriteEnumUsingName属性,因此会将enum值序列化为其Name. 使用WriteEnumUsingToString方法可以序列化时将Enu ...
- FZU 2252 Yu-Gi-Oh!(枚举+贪心)
Problem 2252 Yu-Gi-Oh! Accept: 105 Submit: 628 Time Limit: 1000 mSec Memory Limit : 32768 KB ...
- Django数据库相关操作
首先,在settings.py中加入应用的名称,让数据库知道使用的是哪个应用,然后给那个应用创建表. 在settings.py中配置数据库相关参数,默认使用sqlite3不用配置 编辑models.p ...
- java重载和重载的区别
重载 public class A{ public void test(){} public void test(int num){} public void test(Str ...
- Spring@Autowired注解
@Autowired注解可以对成员变量.方法和构造函数进行标注,来完成自动装配的工作. 注意:@Autowired默认是按照类型来注入的. 看下面的例子:例子是以对成员变量(field)为例进行的 p ...
- 钱币兑换问题--hdu1284(完全背包)
Problem Description 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法. Input 每行只有一个正整数N,N小于32768. ...