Skip to content
fundawang edited this page Mar 20, 2013 · 27 revisions

此模块旨在实现纯服务器端的简单 OAuth 接口,使得第三方应用可以调用网站提供的数据。

技术参数

  • 模块接口地址为 /simpleoauth,请求类型为 HTTP GET。
  • 鉴权成功时,返回 HTTP 200/OK,MIME 类型为 json(application/json)。
  • 鉴权失败时,返回 HTTP 403/Access Forbiden,MIME 类型为不可知。第三方应用应根据 HTTP 响应头来判断调用鉴权是否成功。

用法

  1. 第三方应用应首先通过可靠途径获取 APPID 和 APPKEY。其中 APPKEY 是服务器和第三方应用约定的密钥,不在互联网上传递。
  2. 第三方应用通过模块提供的 grant_access 接口,输入APPID,由服务器返回 access_token。第三方应用应保存此 access_token 及其失效时间。
  3. 第三方应用通过调用相应的接口(如signup,score),输入 access_token,获取用户信息。

鉴权

此接口所有输入输出的内容,都需要通过服务器和第三方应用事先约定的 APPKEY 进行 MD5 摘要运算,生成 sign,以确保内容的可靠。

对于输入的内容

将所有输入内容,去掉 op 参数,所有参数的 内容 与 APPKEY 一起进行字典排序,然后拼接在一起,进行 MD5 运算。得出的结果即为 sign 的内容。

如 grant_access 接口,输入的参数仅有 APPID,若 APPID 为2013abc123,APPKEY为123456,则排序后为123456,2013abc123,拼接后为 1234562013abc123,对此字符串进行 MD5 摘要计算,其结果为 c0a5d8a81740dd2ea3c35b6408bc1273

对于输出的内容

将所有输出的 内容 ,与 APPKEY 一起进行字典排序,然后拼接在一起,进行 MD5 运算。得出的结果即为 sign 的内容。

如 grant_access 接口,输出的结果为 {"status":"0","access_token":"51494768c365c","expire_time":"1363758704","sign":"8da7752cd2f027ea03724a0ab6bdf685"},APPKEY为123456,则将0,51494768c365c,1363758704,123456 进行排序后为 0,123456,1363758704,51494768c365c,拼接后为 0123456136375870451494768c365c,对此字符串进行 MD5 摘要计算,其结果为1a8c0615e8ec4f587534782a441193c9

Clone this wiki locally