用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
  • TA的每日心情
    无聊
    2017-8-15 16:38
  • 签到天数: 42 天

    [LV.5]常住居民I

    890

    主题

    2079

    帖子

    3万

    金钱

    管理员

    论坛管理员

    Rank: 9Rank: 9Rank: 9

    积分
    0

    突出贡献优秀版主荣誉管理论坛元老

    QQ
    2018-1-24 13:53:26 zhichi_admin 管理员 楼主 11723
    微信小游戏用户登录态签名
    微信小游戏的一部分后台(HTTP)接口要求验证用户登录态。开发者在调用时需提供以session_key为密钥生成的签名。其中session_key是指通过wx.login 获得的登录态。
    签名算法
    目前支持的签名算法是 hmac_sha256。 对于POST请求,开发者生成签名的算法是:
    [AppleScript] 纯文本查看 复制代码
    signature = hmac_sha256( post_data, session_key )
    其中post_data为本次POST请求的数据包。特别地,对于GET请求,post_data等于长度为0的字符串。
    [AppleScript] 纯文本查看 复制代码
    signature = hmac_sha256( "", session_key )
    签名示例
    例如开发者需要请求的HTTP(POST)接口,其中请求包为一个json字符串。
    [AppleScript] 纯文本查看 复制代码
    curl -d '{"foo":"bar"}' 'https://api.weixin.qq.com/some_api?access_token=xxx&openid=xxx&signature=???&sig_method=hmac_sha256'
    开发者需要计算出signature参数。假设用户当前有效的session_key 为 :
    [AppleScript] 纯文本查看 复制代码
    'o0q0otL8aEzpcZL/FT9WsQ=='
    则开发者生成签名应该是
    [AppleScript] 纯文本查看 复制代码
    hmac_sha256('{"foo":"bar"}', 'o0q0otL8aEzpcZL/FT9WsQ==') = 654571f79995b2ce1e149e53c0a33dc39c0a74090db514261454e8dbe432aa0b
    开发者服务器发起的HTTP请求
    [AppleScript] 纯文本查看 复制代码
    curl -d '{"foo":"bar"}' 'https://api.weixin.qq.com/some_api?access_token=xxx&openid=xxx&signature=654571f79995b2ce1e149e53c0a33dc39c0a74090db514261454e8dbe432aa0b&sig_method=hmac_sha256'
    session_key 合法性校验
    我们提供接口供开发者校验服务器所保存的登录态session_key是否合法。 为了保持session_key私密性,我们提供的校验接口本身不直接明文session_key,而是通过校验登录态签名完成。
    接口地址
    请求方法:GET
    [AppleScript] 纯文本查看 复制代码
    https://api.weixin.qq.com/wxa/checksession?access\_token=ACCESS\_TOKEN&signature=SIGNATURE&openid=OPENID&sig\_method=SIG\_METHOD
    调用示例
    [AppleScript] 纯文本查看 复制代码
    curl -G 'https://api.weixin.qq.com/wxa/checksession?access_token=OsAoOMw4niuuVbfSxxxxxxxxxxxxxxxxxxx&signature=fefce01bfba4670c85b228e6ca2b493c90971e7c442f54fc448662eb7cd72509&openid=oGZUI0egBJY1zhBYw2KhdUfwVJJE&sig_method=hmac_sha256'

    参数说明
    参数
    必填
    说明
    access_token 接口调用凭证
    openid 用户唯一标识符
    signature 用户登录态签名
    sig_method 用户登录态签名的哈希方法
    buffer 托管数据,类型为字符串,长度不超过1000字节

    返回结果
    正确时的返回JSON数据包如下:
    [AppleScript] 纯文本查看 复制代码
    {"errcode":0,"errmsg":"ok"}
    错误时的返回JSON数据包如下(示例为签名错误):
    [AppleScript] 纯文本查看 复制代码
    {"errcode":87009,"errmsg":"invalid signature"}

    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册
    咫尺论坛|小程序开发社区
    X

    扫码添加专属客服即可随时咨询

    还可领取小程序推广攻略