codecamp

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 的合法性

QQ小程序 开放数据校验和解密
QQ小游戏 授权
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

QQ小程序 开发

硬件能力

QQ小程序 云开发

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }