您的位置:首页 > Web前端 > JavaScript

OAUTH认证授权原理

2016-07-07 09:18 507 查看

1、OAUTH简介

        OAuth(Open Authorization,开放授权)是为用户资源的授权定义了一个安全、开放及简单的标准,第三方无需知道用户的账号及密码,就可获取到用户的授权信息,并且这是安全的。

2、OAUTH原理

       


        分了四个步骤,下面是四步的讲解:

  第一步:用户访问第三方网站,比如:就是你需要使用QQ进行登录的网站;

  第二步:你点击QQ登录后,第三方网站将会连接并进行请求,比如:你点击登录后,第三方网站会跳转到QQ平台,提示你进行登录;

  第三步:你要进行授权第三方网站对你的信息访问的一个权限,比如:当你QQ登录成功后,QQ会提示你,是否授权第三方Web访问你的用户基本信息或其他的资源信息,这时你点击授权即可;

  第四步:授权后,第三方Web即可访问你刚才授权的资源信息。

3、OAUTH1.0认证流程

  在OAuth 1.0认证中会用到三个重要的Url:

  第一个:Request Token Url,获取未授权的Token的Url;

  第二个:User Authorization Url,请求用户对Token进行授权的Url;

  第三个:Request Access Url,使用Token获取Access Token的Url。

       


       第一步:网站向认证平台请求一个未授权的Token,这个Request Token Url是前面说的第一个Url;

    第二步:跳转至用户授权页面,提示用户进行登录,并进行授权,返回获得已授权的Token,用到的User Authorization Url是前面说的第二个Url;

    第三步:通过已授权的Token,向认证平台请求Access Token(数据令牌),用到的Request Access Url是前面说的第三个Url,返回后到这步整个认证流程就结束了
       最后一步,是通过数据令牌等参数,调用接口获取用户信息,

4、OAuth2.0的认证流程

    在OAuth2.0的处理流程,主要分为以下四个步骤:

    1、得到授权码code

    2、获取access token

    3、通过access token,获取OpenID

    4、通过access token及OpenID调用API,获取用户授权信息



    第一步:首先直接跳转至用户授权地址,即图示 Request User Url ,提示用户进行登录,并给予相关资源授权,得到唯一的Auth code,这里注意的是code只有10分钟的有

效期,对于安全考虑,相对于OAuth1.0省了一步获取临时的Token,并且有效期也进行了控制,比1.0认证简化了很多,并安全一些;

    第二步:得到授权code后,这一步就是请求access token,通过 图示 Request access url ,生成得到数据Token;

    第三步:通过Access Token请求OpenID,openid是用户在此平台的唯一标识,通过 图示 Request info url 请求,然后得到OpenID;

    第四步:通过第二步得到的数据Token、第三步得到的OpenID及相关API,进行请求,获取用户授权资源信息。

5、JS代码示例

   
QQ登录的JS版本代码

   
新浪微博登录发布等JS版本代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息