ext.json是一個用于描述小程序或插件包配置信息的文件。token是小程序或插件包請求接口時所需的驗證信息。
在ext.json文件中,可以通過添加"token"屬性的方式配置對應的token值。這個值可以是一個常量,也可以是一個動態計算的值。
{ "extAppid": "wx1bc5c4566c65*****", "ext": { "token": "my-token-value" } }
在小程序或插件包中,可以使用wx.getAccountInfoSync()方法獲取當前小程序或插件包的appid。通過這個appid和在ext.json中配置的token值,可以生成一個有效的token字符串。
// 獲取當前小程序或插件包的appid const { miniProgram } = wx.getAccountInfoSync(); const appid = miniProgram.appId; // 獲取token值 const extConfig = wx.getExtConfigSync(); const token = extConfig.ext.token; // 生成token字符串 const timestamp = new Date().getTime(); const nonce = Math.random().toString(36).substr(2, 10); const raw = `appid=${appid}×tamp=${timestamp}&nonce=${nonce}&token=${token}`; const signature = sha1(raw); const tokenString = `appid=${appid}×tamp=${timestamp}&nonce=${nonce}&signature=${signature}`;
生成的token字符串中包含了appid、timestamp、nonce和signature四個參數,其中signature是通過將其他三個參數按照一定的排序方式拼接起來,并使用sha1算法生成的。
使用這個token字符串向自己的服務器發起請求時,服務器可以通過解析其中的參數,驗證請求是否合法。如果合法,則可以向小程序或插件包返回需要的數據。