Oauth是什么:

  1.Oauth是一种安全认证的协议;

  2.Oauth为用户资源的授权提供了一个安全的、开放而又简易的标准;

  3.Oauth的授权不会使第三方触及到用户的账号信息(用户名和密码)。

    比如说新浪微博开放平台属于第一方,新浪微博用户属于第二方,则第三方就可以是开发者开发的新浪微博客户端应用。第三方的应用不需要接受用户的用户名和密码,用户名和密码只提交给新浪微博开发平台,而不会提交给第三方的应用,即第三方无需使用用户的用户名和密码就可以申请该用户资源的授权,因此Oauth是安全的。

  Oauth当中的角色:

  1.Service Provider(服务提供方):

    服务提供方通常是网站,在这些网站当中存储着一些受限制的资源,如照片、视频、联系人列表等。这些网站通常使用用户名和密码来确认用户的身份。比如新浪微博的开放平台就是Service Provider。

  2.User(用户):

    存放在服务提供方的受保护的资源的所有者。用户持有可以登录服务提供者网站的用户名和密码。用户不希望把自己的资源公开,但是用户却需要将这些资源共享给其他网站或应用程序(如用户希望使用第三方开发的新浪微博客户端来访问自己的资源,但又不希望第三方应用知道自己的用户名和密码)。

  3.客户端(Client):

    要访问服务提供方资源的第三方应用,可以是web应用程序、桌面应用程序或者是手机应用程序。客户端需要得到授权之后才能访问相应的资源。

  Oauth的认证和授权过程:

  1.用户使用第三方的客户端(如访问第三方的网站,或使用第三方的应用),想对存放在服务提供者的某些资源进行操作。

  2.第三方网站或应用向服务提供方请求一个临时令牌(Request Token)。

  3.服务提供方验证第三方的身份后,授予其一个临时令牌。

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

  5.用户在服务提供者的授权页面上输入自己的用户名和密码,然后授权该客户端访问相应的资源。

  6.授权成功后,服务提供方引导用户返回第三方网站的的网页。

  7.客户端根据临时令牌从服务提供方那里获取访问令牌(Access Token)。

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

  9.客户端使用获取的访问令牌访问存放在服务提供方上的相应的资源。

举个例子来说:有时候访问某个网站不用注册就可以通过新浪微博账号,QQ账号登陆,这里就是利用的Oauth认证,如点击QQ账号登陆,会跳转到QQ开发平台的授权登陆界面,输入qq号和密码后就可以用QQ号直接登陆第三方的网站了,根据用户的授权情况,第三方网站会访问到用户相应的资源。

  

Oauth认证简介的更多相关文章

  1. OAUTH协议简介

    OAUTH协议简介 原文来自:http://blog.csdn.net/hereweare2009/article/details/3968582 分类: Open API2009-03-08 12: ...

  2. OAuth认证原理及HTTP下的密码安全传输

    很多人都会问这样一个问题,我们在登录的时候,密码会不会泄露?随便进一个网站,登录时抓包分析,可以看到自己的密码都是明文传输的,在如此复杂的web环境下,我们没有百分的把握保证信息在传输过程中不被截获, ...

  3. HTTP下密码的安全传输、OAuth认证

    在复杂的web环境下,我们没有百分的把握保证信息在传输的过程中不被接货,那不是用明文如何告诉服务器自己的身份呢? 在一些高度通信安全的网络中,数据传输会使用HTTPS作为传输协议,但是通常情况下我们没 ...

  4. 拿nodejs快速搭建简单Oauth认证和restful API server攻略

    拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...

  5. 一步一步搭建 OAuth 认证服务器

    http://www.fising.cn/2011/03/%E4%B8%80%E6%AD%A5%E4%B8%80%E6%AD%A5%E6%90%AD%E5%BB%BA-oauth-%E8%AE%A4% ...

  6. JAVA Oauth 认证服务器的搭建

    http://blog.csdn.net/binyao02123202/article/details/12204411 1.软件下载 Oauth服务端: http://code.google.com ...

  7. 新浪微博客户端开发之OAuth认证篇

    新浪微博客户端开发之OAuth认证篇 2013年7月29日新浪微博客户端开发 OAuth2.0授权机制我在这里就不浪费口舌了,有很多大牛都发表过相关的文章解释OAuth2.0认证的流程,我就随便找了一 ...

  8. 服务端API的OAuth认证实现

    http://stackoverflow.com/questions/12499602/body-joints-angle-using-kinect?rq=1 新浪微博跟update相关的api已经挂 ...

  9. Oauth认证的时候报错:timestamp_refused

    今天server大规模报错,大部分用户无法登陆,小部分能够登陆,非常是奇怪. 查看log.调试代码,发现问题是在oauth认证的时候出了问题,报 timestamp_refused. google了下 ...

随机推荐

  1. (转载)MySQL关键字GROUP BY的使用

    例子: mysql> select * from employee; +------+------+-------+------+-------+----------+ | num | d_id ...

  2. UISlider的使用

    UISlider是一个用来调节的滑块,可以通过滑块来设置程序的某些属性 构造方法:     imgSlider = [[UISlider alloc] initWithFrame:sliderRect ...

  3. ubuntu错误解决。

    ubuntu中出现如下错误: W: Failed to fetch http://cn.archive.ubuntu.com/ubuntu/dists/precise-backports/main/i ...

  4. Google图片搜索

    本博文的主要内容有 .Google图片搜索的介绍 .Google图片之普通搜索    .Google图片之高级搜索 1.Google图片搜索的介绍   Google的图片搜索,不仅通过关键字查找拥有特 ...

  5. iOS开发tips总结

    tip 1 :  给UIImage添加毛玻璃效果 func blurImage(value:NSNumber) -> UIImage { let context = CIContext(opti ...

  6. [置顶] linux下让php支持mysql——寻找消失的mysql

       问题 最近我都在忙一个课件录制系统.这两天发现其中服务器端的一个更新数据库的php脚本运行有问题,一些本应该是系统自带函数却无法运行.于是我展开了调查... 服务器端是centos系统,其中ph ...

  7. CENTOS 7 开放端口设置

    CentOS 7 默认没有使用iptables,所以通过编辑iptables的配置文件来开启80端口是不可以的 CentOS 7 采用了 firewalld 防火墙 如要查询是否开启80端口则: [r ...

  8. sql 数据字段类型

    bit    整型 bit数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或False .On 或Off. 注意:很省空间的一种数据类型, ...

  9. 【转】CPU调度

    转自:http://blog.csdn.net/xiazdong/article/details/6280345 CPU调度   用于多道程序 以下先讨论对于单CPU的调度问题. 回顾多道程序,同时把 ...

  10. soapUI的使用

    首先下载soapUI下载地址在网上能够搜的到  windows下载这个soapUI-x32-3_5.exe(中间的数字是版本,能够下载最新的,这个已经有了JMS的測试功能)  首先得有一个webser ...