平台jwt鉴权
星汉平台部分功能,需要在 header
中传入 jwt
字段,开发者可以通过下面的方式获取该鉴权信息。
必要参数
开发者需从星汉平台获取如下参数,用于生成鉴权信息。
字段 | 说明 | 用途 |
---|---|---|
programId | 由星汉平台提供的应用program id | 加密数据字段 |
serverSecret | 服务秘钥 | 加密密钥 |
miniprogramId | 小程序/小游戏的微信appid | 加密数据字段 |
其中, serverSecret
需联系星汉商务对接组获取。
生成方式
通过 nodejs
实现时,先 npm install jsonwebtoken
安装模块。
const jsonwebtoken = require("jsonwebtoken");
//组装待加密数据let payload = {
programId: programId,
miniprogramId: miniprogramId
};
//生成 token, expiresIn 为过期时间(单位为秒),建议每次请求生成新的 tokenlet token = jsonwebtoken.sign(payload, serverSecret, {
expiresIn: 300
});
通过 php
实现时,先 composer require firebase/php-jwt
安装模块。
<?php
use \Firebase\JWT\JWT;
//生成 token, exp 为过期时间(单位为秒),建议每次请求生成新的 token
$payload = [
"programId" => $programId,
"miniprogramId" => $miniprogramId,
"iat" => time(),
"exp" => time() + 300
];
$token = JWT::encode($payload, $serverSecret);
使用方式
在调用需要服务端鉴权的接口的时候在 header
中传入 jwt
字段即可。
校验失败的错误码及处理方案如下:
错误码 | http状态码 | 错误信息 | 应用场景 | 处理方案 |
---|---|---|---|---|
1017 | 403 | 路由程序 id 缺失 | token 校验报错 | 检查请求路由中 programId 是否设置 |
1018 | 403 | header中accesstoken参数缺失 | jwt字段缺失 | header上传入 jwt字段 |
1037 | 403 | jwt 校验错误{错误原因} | jwt 校验报错 | 查看错误原因并修复 |
1038 | 403 | jwt 过期 | jwt 校验失败:过期 | 重新生成 jwt 并用新 jwt 重新校验 |
1039 | 403 | jwt 无效 | jwt 校验失败:无效 | 重新生成 jwt 并用新 jwt 重新校验 |