31 lines
692 B
JavaScript
31 lines
692 B
JavaScript
const fs = require('fs');
|
||
const jwt = require('jsonwebtoken');
|
||
|
||
// 从 Jenkins 环境变量获取
|
||
const API_KEY = process.env.API_KEY;
|
||
const API_ISSUER = process.env.API_ISSUER;
|
||
const P8_FILE = process.env.P8_FILE;
|
||
|
||
// 读取 p8 私钥
|
||
const privateKey = fs.readFileSync(P8_FILE, 'utf8');
|
||
|
||
// 生成 JWT(苹果标准格式)
|
||
const token = jwt.sign(
|
||
{
|
||
iss: API_ISSUER,
|
||
exp: Math.floor(Date.now() / 1000) + 1200, // 20分钟
|
||
aud: 'appstoreconnect-v1'
|
||
},
|
||
privateKey,
|
||
{
|
||
algorithm: 'ES256',
|
||
header: {
|
||
kid: API_KEY,
|
||
alg: 'ES256'
|
||
}
|
||
}
|
||
);
|
||
|
||
// 输出 JWT(Jenkins 会捕获这个值)
|
||
console.log(token);
|