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 ...
随机推荐
- poj3347 Kadj Squares【计算几何】
Kadj Squares Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 3594 Accepted: 1456 Desc ...
- codeforces 14A - Letter & codeforces 859B - Lazy Security Guard - [周赛水题]
就像title说的,是昨天(2017/9/17)周赛的两道水题…… 题目链接:http://codeforces.com/problemset/problem/14/A time limit per ...
- MyBatis 强大之处 多环境 多数据源 ResultMap 的设计思想是 缓存算法 跨数据库 spring boot rest api mybaits limit 传参
总结: 1.mybaits配置工2方面: i行为配置,如数据源的实现是否利用池pool的概念(POOLED – This implementation of DataSource pools JDBC ...
- Alpine Linux
Alpine Linux Docker镜像基于Alpine Linux操作系统,后者是一个面向安全的轻型Linux发行版.不同于通常Linux发行版,Alpine Linux采用了musl libc和 ...
- 匿名内部类的参数引用只能是final,可能遇到的问题及其解决
这个是我碰到比较多次的问题,一开始是不解,不过查了下大家都觉得没什么,而且只是加个final好像影响也不大,于是我就直接加个final了事,之后也不管了 直到昨天: 遇到了这个宿命般的问题 难道解决方 ...
- webpack笔记一
gulp和grunt都以task来运行不同的命令,而看webpack相关文档都是webpack都是module.下面是一个简单的demo 一.目录解构 二.webpack.config.js文件 co ...
- python platform模块
该模块用来访问平台相关属性. 常见属性和方法 系统名称 platform.system() 返回系统/操作系统名称,例如“Linux”,“Windows” >>> platform. ...
- Laravel初级教程浅显易懂适合入门
整理了一些Laravel初级教程,浅显易懂,特适合入门,留给刚学习laravel想快速上手有需要的朋友 最适合入门的laravel初级教程(一)序言 最适合入门的laravel初级教程(二)安装使用 ...
- makefile 中wildcard
在Makefile规则中,通配符会被自动展开.但在变量的定义和函数引用时,通配符将失效.这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTER ...
- R之ddlpy函数学习[转载]
转自:https://www.cnblogs.com/aloiswei/p/6032513.html 1.函数 ddply(.data, .variables, .fun = NULL, ..., . ...