微信小游戲開發(fā)文檔-小游戲用戶登錄態(tài)簽名開放能力開發(fā)教程

2018-01-18 16:25 更新

用戶登錄態(tài)簽名


微信小程序的一部分后臺(tái)(HTTP)接口要求驗(yàn)證用戶登錄態(tài)。開發(fā)者在調(diào)用時(shí)需提供以session_key為密鑰生成的簽名。其中session_key是指通過wx.login 獲得的登錄態(tài)。

簽名算法

目前支持的簽名算法是 hmac_sha256。 對(duì)于POST請(qǐng)求,開發(fā)者生成簽名的算法是:

signature = hmac_sha256( post_data, session_key )

其中post_data為本次POST請(qǐng)求的數(shù)據(jù)包。特別地,對(duì)于GET請(qǐng)求,post_data等于長(zhǎng)度為0的字符串。

signature = hmac_sha256( "", session_key )

簽名示例

例如開發(fā)者需要請(qǐng)求的HTTP(POST)接口,其中請(qǐng)求包為一個(gè)json字符串。

curl -d '{"foo":"bar"}' 'https://api.weixin.qq.com/some_api?access_token=xxx&openid=xxx&signature=???&sig_method=hmac_sha256'

開發(fā)者需要計(jì)算出signature參數(shù)。假設(shè)用戶當(dāng)前有效的session_key 為 :

'o0q0otL8aEzpcZL/FT9WsQ=='

則開發(fā)者生成簽名應(yīng)該是

hmac_sha256('{"foo":"bar"}', 'o0q0otL8aEzpcZL/FT9WsQ==') = 654571f79995b2ce1e149e53c0a33dc39c0a74090db514261454e8dbe432aa0b

開發(fā)者服務(wù)器發(fā)起的HTTP請(qǐng)求

curl -d '{"foo":"bar"}' 'https://api.weixin.qq.com/some_api?access_token=xxx&openid=xxx&signature=654571f79995b2ce1e149e53c0a33dc39c0a74090db514261454e8dbe432aa0b&sig_method=hmac_sha256'

session_key 合法性校驗(yàn)

我們提供接口供開發(fā)者校驗(yàn)服務(wù)器所保存的登錄態(tài)session_key是否合法。 為了保持session_key私密性,我們提供的校驗(yàn)接口本身不直接明文session_key,而是通過校驗(yàn)登錄態(tài)簽名完成。

接口地址

請(qǐng)求方法:GET

https://api.weixin.qq.com/wxa/checksession?access\_token=ACCESS\_TOKEN&signature=SIGNATURE&openid=OPENID&sig\_method=SIG\_METHOD

調(diào)用示例

curl -G 'https://api.weixin.qq.com/wxa/checksession?access_token=OsAoOMw4niuuVbfSxxxxxxxxxxxxxxxxxxx&signature=fefce01bfba4670c85b228e6ca2b493c90971e7c442f54fc448662eb7cd72509&openid=oGZUI0egBJY1zhBYw2KhdUfwVJJE&sig_method=hmac_sha256'

參數(shù)說明

參數(shù) 必填 說明
access_token 接口調(diào)用憑證
openid 用戶唯一標(biāo)識(shí)符
signature 用戶登錄態(tài)簽名
sig_method 用戶登錄態(tài)簽名的哈希方法
buffer 托管數(shù)據(jù),類型為字符串,長(zhǎng)度不超過1000字節(jié)

返回結(jié)果

正確時(shí)的返回JSON數(shù)據(jù)包如下:

{"errcode":0,"errmsg":"ok"}

錯(cuò)誤時(shí)的返回JSON數(shù)據(jù)包如下(示例為簽名錯(cuò)誤):

{"errcode":87009,"errmsg":"invalid signature"}
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)