QQ小游戏 用户登录态签名
小程序的一部分后台 (HTTPS)接口要求验证用户登录态。开发者在调用时需提供以 session_key
为密钥生成的签名。其中 session_key
是指通过 qq.login
获得的登录态。
签名算法
目前支持的签名算法是 hmac_sha256。 对于POST请求,开发者生成签名的算法是:
signature = hmac\_sha256(post\_data, session_key)
其中 post_data
为本次POST请求的数据包。特别地,对于 GET
请求,post_data
等于长度为 0 的字符串。
signature = hmac\_sha256('', session\_key)
签名示例
例如开发者需要请求的 HTTPS(POST)接口,其中请求包为一个 json 字符串。
curl -d '{"foo":"bar"}' 'https://api.q.qq.com/some_api?access_token=xxx&openid=xxx&signature=???&sig_method=hmac_sha256'
开发者需要计算出 signature 参数。假设用户当前有效的 session_key
为 :
'o0q0otL8aEzpcZL/FT9WsQ=='
则开发者生成签名应该是
` curl -d '{"foo":"bar"}' 'https://api.q.qq.com/some_api?access_token=xxx&openid=xxx&signature=654571f79995b2ce1e149e53c0a33dc39c0a74090db514261454e8dbe432aa0b&sig_method=hmac_sha256'
`
开发者服务器发起的HTTP请求
curl -d '{"foo":"bar"}' 'https://api.q.qq.com/some_api?access_token=xxx&openid=xxx&signature=654571f79995b2ce1e149e53c0a33dc39c0a74090db514261454e8dbe432aa0b&sig_method=hmac_sha256'
session_key 合法性校验
获取用户态签名后,可以调用后台接口来校验 session_key
的合法性