您的位置:首页 > 运维架构 > 网站架构

淘宝账号基于OAuth2.0的登录验证授权登陆第三方网站

2012-10-29 11:27 603 查看
首先得有一个注册的appkey和App Secret
 
该流程分三个步骤: 

第一步:通过用户授权获取授权码Code; 

第二步:用上一步获取的Code和应用密钥(AppSecret)通过Https Post方式换取Token。 

第三步:获取用户Nick或者其他信息
第四步:保存session信息
 
一、获取授权码Code应用在要求获取用户信息的时候,首先引导用户(Redirect)到登录授权页面https://oauth.taobao.com/authorize 

需要传的参数有 

名称 
是否必需 
描述 
response_type

此处为web应用,此值固定为code 
client_id 

即创建应用时的Appkey 
redirect_uri 

登录后的回调地址,(注意:此地址必须要与注册应用时的回调地址相匹配,匹配规则是:注域名完全匹配 
state 

该参数由应用定义,用户授权后,授权服务器会原封不动将此参数返回。 

注: 应用可通过可选参数state来记录用户当前所处的页面位置信息,方便用户登录授权后,页面回调到用户之前所处的位置。 
例如: https://oauth.taobao.com/authorize?response_type=code&client_id=12251541&redirect_uri=http://www.xx.org&state=1 

[attachment=335] 

用户登陆后,显示用户授权页面: 

[attachment=336] 

此时,用户可以选择“授权”或者“取消”(即不同意授权)。 

如果用户同意授权,则跳转到应用的回调地址(redirect_uri),同时,应用获得授权码code 

[attachment=337] 

如果用户取消授权或者访问出错 

[attachment=338] 

二、用授权码Code换取Token应用在获取授权码后,发送Https Post到授权服务器,授权服务器验证授权码的合法性和应用的AppSecret,验证通过后授权服务器返回Access Token给应用。 

需要传的参数有: 

名称 
是否必需
描述 
grant_type 

授权类型 authorization_code 或者 refresh_token 
code 

授权请求中的授权码,即第一步获取到的code 
redirect_uri 

登录后的回调地址,(注意:此地址必须要与注册应用时的回调地址相匹配,匹配规则是:注域名完全匹配 
client_id 

客户标识,即appkey 
client_secret

客户密钥,即appsecret 
以下为java代码实现授权: 

第一步: 

在网站设置登陆入口 

复制代码

<A class="g6" title=会员登录 

   href="https://oauth.taobao.com/authorize?client_id=12381144&response_type=code&state=1&redirect_uri=http://localhost:2011/WinTaobao/do.jsp" target="_blank"> 

   登录

第二步,在redirect网站接受登录后返回的code,并获得access_token

  1.  access_token就相当于sessionKey,后续调用其他接口可以直接使用 

 
三、使用淘宝api获取登陆的用户名,将此用户名设置到session中。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: