平台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 重新校验
Last Updated: 3/21/2019, 4:31:09 PM