校验方式
数据接口的请求校验采用JWT校验
- 相关文档:https://jwt.io/,
- 相关实践:https://www.jianshu.com/p/576dbf44b2ae,
请求方按照JWT标准拼接 token。有以下注意事项:
payload 中要有签发时间( iat )和过期时间(exp) 以及 APPID,格式如下:
{'iat':1515654877,'exp':1515654977,'appid': '2rdtdsaq'}
signature 中,用 appsecret 进行加盐处理;
appid 和 appsecret 是24好玩为第三方平台分配,基于安全,请在对接前索要这两项;
请求头里加入Authorization,并加上Bearer标注:
headers: {'Authorization': 'Bearer ' + token} // token 类型 Bearer 与 token 值之间以空格' '分割
如果是服务端请求,请在 headers 中加上以下参数:
headers: {'X-Requested-With': 'XMLHttpRequest'}
请求示例
已知参数:
appid: S6qHH9ZPR(示例 参数)
appsecret:EZMqJOBKDttQXvoduhpxXGwccZ(示例 参数)
JWT加密流程(详细流程请参见:https://packagist.org/packages/firebase/php-jwt):
$appsecret = "EZMqJOBKDttQXvoduhpxXGwccZ";
$payload = array(
'iat' => 1356999524,
'exp' => 1357000000,
'appid' => 'S6qHH9ZPR', // 第三方平台的 appid
'appuid' => '123as' // 第三方平台下的用户id
);
$jwt_token = JWT::encode($payload, $appsecret);