xAuth文档

关于xAuth

xAuth认证实际上是OAuth1.0认证的简化版,本质上还是基于OAuth1.0认证。目前xAuth只对桌面客户端和移动客户端开放申请。Web应用请使用OAuth1.0a或者OAuth2.0。

xAuth申请需求

xAuth申请需提交材料:

企业:
1.营业执照副本复印件
2.法人身份证复印件
3.税务登记副本复印件
4.应用产品说明文档:包括产品介绍、运营推广策略、改进目标等

个人:
1.开发者身份证复印件
2.应用产品说明文档:包括产品介绍、运营推广策略、改进目标等

xAuth申请通过后,需签订合作开发者协议。请将上述资料和APPID、应用名称一起发送邮件到app@corp.kaixin001.com来申请xAuth的使用权。

使用xAuth

1. 获得xAuth的使用权后,为了能够生成OAuth签名,我们首先参考如何生成OAuth签名,生成OAuth的BaseString。注意,生成BaseString时需要传入如下几个参数:

x_auth_username:用户名
x_auth_password:密码
x_auth_mode:标识字段,这里必须是"client_auth"。
oauth_consumer_key: 创建应用时生成的API KEY。
oauth_signature_method: 签名方法,建议使用“HMAC-SHA1”。
oauth_timestamp:时间戳。生成Base String时的时间戳。
oauth_nonce:单次值,一个随机字符串,防止重复攻击。
oauth_version : OAuth协议版本。填写“1.0”。
scope : 要申请的scope权限,默认为basic

生成的BaseString示例如下:

POST&http%3A%2F%2Fapi.kaixin001.com%2Foauth%2Faccess_token&oauth_consumer_key%3D805189877519df96b9618975421473a6%26oauth_nonce%3D6f02e802f432ec2ef637a54e09ef2aff%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1314325182%26oauth_version%3D1.0%26scope%3Duser_rgroup%26x_auth_mode%3Dclient_auth%26x_auth_password%3D------%26x_auth_username%3D--------

2. 用刚刚生成的BaseString,经过HMAC-SHA1算法生成oauth_signature,示例如下:

nmFzKQBbqrvG6nFjiMA2m0/2vzQ=

3. 将以下参数封装成HTTP请求头,并向oauth/access_token接口提交POST请求:
x_auth_username
x_auth_password
x_auth_mode
oauth_consumer_key
oauth_signature_method
oauth_signature
oauth_timestamp
oauth_nonce
oauth_version
scope

oauth_consumer_key=805189877519df96b9618975421473a6&oauth_nonce=4bfb649eb3e3c00f976a7db983bf3ab1&oauth_signature=I5CN7OL323ghhokPc6n0NYmy6MI%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1314325429&oauth_version=1.0&scope=user_rgroup&x_auth_mode=client_auth&x_auth_password=-----&x_auth_username=------%40corp.kaixin001.com

4. 得到的返回结果示例如下:

oauth_token=886215a8e1a97c7b9293f526bcc0e1&oauth_token_secret=3da53e04140e420e598f70989cf2517af051954f6d&user_id=53948

将返回结果按”&“拆开,oauth_token的值即为access_token。

oauth/access_token

第三方应用使用开始的request_token来换取用户授权过的Access_token。在xAuth认证方式中,也可以直接获取Access Token

请求URL地址

格式

标准的OAuth http返回格式

HTTP请求方式

POST

开心账号验证请求参数

参考OAuth的第6章

字段必选说明
x_auth_usernameTRUE用户名
x_auth_passwordTRUE密码填
x_auth_modeTRUE标识字段,这里必须是”client_auth”
oauth_consumer_keyTRUE创建应用时生成的API KEY
oauth_signature_methodTRUE签名方法,建议使用“HMAC-SHA1”
oauth_timestampTRUE时间戳。生成Base String时的时间戳
oauth_nonceTRUE单次值,一个随机字符串,防止重复攻击。该参数只支持ASCII码的字符串
oauth_versionTRUEOAuth协议版本。填写“1.0”
oauth_signatureTRUE签名值,密钥为:API Secret&
scopeFASLE以空格分隔的权限列表,若不传递此参数,代表请求默认的basic权限。
如需调用扩展权限,必需传递此参数,详细请参考权限列表

使用说明

返回值

oauth_token=886215a8e1a97c7b9293f526bcc0e1&oauth_token_secret=3da53e04140e420e598f70989cf2517af051954f6d&user_id=1374523

腾讯验证请求参数

字段必选说明
tencent_tokenTRUE从腾讯开放平台获取的token
expireTRUEtoken的有效期
openidTRUE从腾讯开放平台获取的openid
x_auth_modeTRUE标识字段,这里必须是”client_auth”
oauth_consumer_keyTRUE创建应用时生成的API KEY
oauth_signature_methodTRUE签名方法,建议使用“HMAC-SHA1”
oauth_timestampTRUE时间戳。生成Base String时的时间戳
oauth_nonceTRUE单次值,一个随机字符串,防止重复攻击。该参数只支持ASCII码的字符串
oauth_versionTRUEOAuth协议版本。填写“1.0”
oauth_signatureTRUE签名值,密钥为:API Secret&
scopeFASLE以空格分隔的权限列表,若不传递此参数,代表请求默认的basic权限。
如需调用扩展权限,必需传递此参数,详细请参考权限列表

腾讯验证返回参数使用说明

返回值,如没有绑定开心账号则自动分配开心账号

oauth_token=886215a8e1a97c7b9293f526bcc0e1&oauth_token_secret=3da53e04140e420e598f70989cf2517af051954f6d&user_id=1374523

新浪微博验证请求参数

字段必选说明
weibo_tokenTRUE从新浪微博开放平台获取的token
expireTRUEtoken的有效期
indentity_idTRUE从新浪微博开放平台获取的用户唯一标识
x_auth_modeTRUE标识字段,这里必须是”client_auth”
oauth_consumer_keyTRUE创建应用时生成的API KEY
oauth_signature_methodTRUE签名方法,建议使用“HMAC-SHA1”
oauth_timestampTRUE时间戳。生成Base String时的时间戳
oauth_nonceTRUE单次值,一个随机字符串,防止重复攻击。该参数只支持ASCII码的字符串
oauth_versionTRUEOAuth协议版本。填写“1.0”
oauth_signatureTRUE签名值,密钥为:API Secret&
scopeFASLE以空格分隔的权限列表,若不传递此参数,代表请求默认的basic权限。
如需调用扩展权限,必需传递此参数,详细请参考权限列表

新浪微博验证返回参数使用说明

返回值,如没有绑定开心账号则自动分配开心账号

oauth_token=886215a8e1a97c7b9293f526bcc0e1&oauth_token_secret=3da53e04140e420e598f70989cf2517af051954f6d&user_id=1374523