几个重要平台的auth2登录验证

QQ 后台方式的登录验证

http://wiki.opensns.qq.com/wiki/%E3%80%90QQ%E7%99%BB%E5%BD%95%E3%80%91%E4%BD%BF%E7%94%A8Authorization_Code%E8%8E%B7%E5%8F%96Access_Token

取得授权码 authorize_code

https://graph.qq.com/oauth2.0/authorize (GET)

参数必须与否 描述

response_type

必须

此值固定为“code”

client_id

必须

申请QQ登录成功后,分配给应用的appid

redirect_uri

必须

成功授权后的回调地址,域名 回调接口(URLEncode)。

state

必须

client端的状态值。用于第三方应用防止CSRF攻击,自定义的值。

scope

可选

请求用户授权时向用户显示的可进行授权的列表。

例如:scope=get_user_info,list_album,upload_pic,do_like

display

可选

仅PC网站接入时使用。默认展示为PC下的样式。
如果传入“mobile”,则展示为mobile端下的样式。

g_ut

可选

仅WAP网站接入时使用。

QQ登录页面版本(1wml版本; 2xhtml版本),默认值为1

用户授权成功

http://.../callback.action?code=9A5F************************06AF&state=test

用户没授权:

http://.../callback.action?usercancel=1&state=test

根据授权码取得access_token

https://graph.qq.com/oauth2.0/token (GET)

参数

是否必须

含义

grant_type

必须

授权类型,此值固定为“authorization_code”

client_id

必须

网站的appid

client_secret

必须

网站的appkey

code

必须

上一步返回的authorization code

注意此code会在10分钟内过期。

redirect_uri

必须

与上面一步中传入的redirect_uri保持一致。

成功取码: 

access_token=FE04************************CCE2&expires_in=7776000 

失败:

返回codemsg字段,以url参数对的形式返回,value部分会进行url编码

根据access_token获得对应用户身份的openid

https://graph.qq.com/oauth2.0/me (GET)

参数

是否必须

含义

access_token

必须

Step1中获取到的access token

查询成功:

[plain] view plain copy
  1. callback( {"client_id":"YOUR_APPID","openid":"YOUR_OPENID"} );   

查询失败: 

[plain] view plain copy
  1. 通用错误码  

调用openid并访问资源

access_token=<token>& oauth_consumer_key=<appkey>& opened=<user_openid>

参数: 

YOUR_APP_ID appid(如222222

YOUR_ACCESS_TOKENStep1获取到的access token,必须保证未过期(如E0632E6CE12AC709999

YOUR_OPENIDStep2获取到的openid,用户唯一标识(如B9DD537D1C5C98A9999

[plain] view plain copy
  1. https://graph.qq.com/user/get_user_info? (GET)  
  2. access_token=*************& oauth_consumer_key=12345& openid=****************& format=json   

[plain] view plain copy
  1. {  
  2.     "ret":0, // 返回码  
  3.     "msg":"", // 错误信息,red<0  
  4.     "nickname":"Peter", //呢称  
  5.     "figureurl":"http://qzapp.qlogo.cn/qzapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/30", //30x30  
  6.     "figureurl_1":"http://qzapp.qlogo.cn/qzapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/50", //50x50  
  7.     "figureurl_2":"http://qzapp.qlogo.cn/qzapp/111111/942FEA70050EEAFBD4DCE2C1FC775E56/100",//100x100  
  8.     "gender":"男",//性别  
  9.     "vip":"1", //黄钻用户  
  10.     "level":"7",//黄钻等级  
  11.     "is_yellow_year_vip":"1"//年费黄钻用户  
  12. }  

Weibo后台方式的登录验证

http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E

获得授权码

https://api.weibo.com/oauth2/authorize GET/POST

client_id

必须

string

AppKey

redirect_uri

必须

string

授权回调地址 

scope

可选

string

申请scope权限所需参数,可一次申请多个scope权限,用逗号分隔。

state

可选

string

防止跨站请求伪造(CSRF)攻击,第三方自定义串

display

可选

string

授权页面的终端类型,取值见下面的说明。

{default->web page,  mobile , wapclientapponweibo ->站内 }

forcelogin

可选

boolean

是否强制用户重新登录,true:是,false:否。默认false

language

可选

string

授权页语言,缺省为中文简体版,en为英文版。

成功: 

http://www.example.com/response&code=CODE&state

失败: 

[plain] view plain copy
  1. { "error":"desc",  "error_code":123456, "error_description":"desc" }  

根据授权码获取access_token 

https://api.weibo.com/oauth2/access_token POST

 

必选

类型及范围

说明

client_id

true

string

申请应用时分配的AppKey

client_secret

true

string

申请应用时分配的AppSecret

grant_type

true

string

请求的类型,填写authorization_code

grant_typeauthorization_code

 

必选

类型及范围

说明

code

true

string

调用authorize获得的code值。

redirect_uri

true

string

回调地址,需需与注册应用里的回调地址一致。

成功调用则返回: 

[plain] view plain copy
  1. {"access_token": "token.. ", "expires_in": 1234, "remind_in":"798114", "uid":"12341234" }  

不成功则: 

  1. {  "error":"desc",  "error_code":123456, "error_description":"desc" }  

根据token查询用户的信息及资源

https://api.weibo.com/oauth2/get_token_info (POST)

 

必选

类型及范围

说明

access_token

true

string

access_token

成功返回值: 

[plain] view plain copy
  1. { "uid": 1073880650,  "appkey": 1352222456, "scope": null,"create_at": 1352267591, "expires_in": 157679471 }  

失败返回值: 

  1. { "error":"desc",  "error_code":123456, "error_description":"desc" }  

豆瓣后台方式的登录验证

http://developers.douban.com/wiki/?title=oauth2#server_side_flow

获取授权码

https://www.douban.com/service/auth2/auth (GET)

参数名称

参数说明

client_id

必选

APIKey

redirect_uri

必选

回调地址,此地址必须与在应用注册时填写的回调地址一致。

response_type

必选

此值可以为 code 或者 token

scope

可选

申请权限的范围,缺省的scope

如果申请多个scope,使用逗号分隔。

state

可选

第三方自定义参数

成功: 

https://www.example.com/back?code=9b73a4248

不成功:

https://www.example.com/back?error=access_denied

获取access_token

https://www.douban.com/service/auth2/token (POST) 

参数名称

参数说明

client_id

必选

APIKey

client_secret

必选

对应于豆瓣secret

redirect_uri

必选

回调地址

grant_type

必选

此值可以为 authorization_code 或者 refresh_token 

code

必选

authorization_code

成功: 

[plain] view plain copy
  1. { "access_token":"<token>", "expires_in":3920, "refresh_token":"<token2>", "douban_user_id":"<user-id>"}  

失败: 

[plain] view plain copy
  1. {"msg":"uri_not_found", "code":1001, "request":"GET \/v2\/photo\/132"}  

获取当前用户信息

https://api.douban.com/v2/user/~me (GET)

重要注意事项: 

  •  必须用GET方法
  • l必须将token放在请求的header里,key = “Authorization”, value=”Bearer token…”的方式放入header.

成功: 

[plain] view plain copy
  1. { "loc_id":"118281", "name":"名称", "created":"<创建日期>", "loc_name":"地区", "avatar":"图标", "signature":"签名", "uid":"账号", "alt":"链接地址", "id":"63867659", "desc":""}  

失败: 

[plain] view plain copy
  1. {"msg":"uri_not_found", "code":1001, "request":"GET \/v2\/photo\/132"}  

举例方式: 

curl "https://api.douban.com/v2/user/~me" -H "Authorization: Bearer a14afef0f66fcffce3e0fcd2e34f6ff4"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值