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 开发授权的更多相关文章

  1. [转]OAuth 2.0 - Authorization Code授权方式详解

    本文转自:http://www.cnblogs.com/highend/archive/2012/07/06/oautn2_authorization_code.html I:OAuth 2.0 开发 ...

  2. OAuth 2.0 - Authorization Code授权方式详解

    I:OAuth 2.0 开发前期准备 天上不会自然掉馅饼让你轻松地去访问到人家资源服务器里面的用户数据资源,所以你需要做的前期开发准备工作就是把AppKey, AppSecret取到手 新浪获取传送门 ...

  3. asp.net权限认证:OWIN实现OAuth 2.0 之授权码模式(Authorization Code)

    asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证 ...

  4. SimpleSSO:使用Microsoft.Owin.Security.OAuth搭建OAuth2.0授权服务端

    目录 前言 OAuth2.0简介 授权模式 (SimpleSSO示例) 使用Microsoft.Owin.Security.SimpleSSO模拟OpenID认证 通过authorization co ...

  5. Microsoft.Owin.Security.OAuth搭建OAuth2.0授权服务端

    Microsoft.Owin.Security.OAuth搭建OAuth2.0授权服务端 目录 前言 OAuth2.0简介 授权模式 (SimpleSSO示例) 使用Microsoft.Owin.Se ...

  6. OAuth 2.0 开发完全详解

    --------------------------基础篇------------------------------- I:OAuth 2.0 概述 首先大家来看看国内新浪跟腾讯这两大头对OAuth ...

  7. springboot oauth 鉴权之——授权码authorization_code鉴权

    近期一直在研究鉴权方面的各种案例,这几天有空,写一波总结及经验. 第一步:什么是 OAuth鉴权 OAuth2是工业标准的授权协议.OAuth2取代了在2006创建的原始OAuthTM协议所做的工作. ...

  8. OAuth 2.0之授权码模式

    转载自:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html OAuth 2.0授权码模式 授权码模式(authorization code)是功 ...

  9. Spring Authorization Server授权服务器入门

    11月8日Spring官方已经强烈建议使用Spring Authorization Server替换已经过时的Spring Security OAuth2.0,距离Spring Security OA ...

随机推荐

  1. thinkphp---用事务处理批量操作

    我们在进行一些业务逻辑的时候,难免会出现批量操作的问题,特别是批量修改操作,如果数据量大,总会考虑到批量修改到一半怎么办?所以如果使用事务来进行批量操作就会好很多,直接看代码: public func ...

  2. javascript中top、clientTop、scrollTop、offsetTop的讲解(转载加总结)

    scrollHeight: 获取对象的滚动高度. scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最 ...

  3. FZU 2092 收集水晶(记忆化搜索)

    Problem 2092 收集水晶 Accept: 101 Submit: 439 Time Limit: 5000 mSec Memory Limit : 32768 KB Problem Desc ...

  4. TensorFlow softmax的互熵损失

    函数:tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None) 功能:这个函数的作用是计算 logits 经 softmax ...

  5. AOP 详解

    1. 需求:统计方法执行的性能情况(来源:<精通Spring 4.x>) // 性能监视类 PerformanceMonitor package com.noodles.proxy; pu ...

  6. LoadRunner-参数化(参数间关联)

    多用户测试,每个用户账号对应一个密码,账号和密码需要一 一关联才能登录成功. 1.在已经对账号进行参数化后,选中密码的值->右键选择Replace with a Parameter,参数名为pa ...

  7. kubernetes实战(十四):k8s持久化部署gitlab集成openLDAP登录

    1.基本概念 使用k8s安装gitlab-ce,采用GlusterFS实现持久化(注意PG使用的是NFS存储,使用动态存储重启postgresql的pod后无法成功启动pg,待解决),并集成了open ...

  8. 理解CopyOnWriteArrayList

    CopyOnWriteArrayList,顾名思义,Write的时候总是要Copy,也就是说对于任何可变的操作(add.set.remove)都是伴随复制这个动作的 A thread-safe var ...

  9. LeetCode-206.ReverseLinked List

    Reverse a singly linked list. Example: Input: 1->2->3->4->5->NULL Output: 5->4-> ...

  10. [py][mx]django课程模型

    课程模型分析 分3个表 先设计课程表, 这是1 在设计lesson表,添加一个外键,course. 课程 1 course 章节 n lesson 视频 n video 资源 n coursereso ...