JLBA202505130001_关于吉林银行新建AI智能培训系统的需求_完善代码规范
This commit is contained in:
+5
-37
@@ -219,48 +219,16 @@ pipeline {
|
||||
stage('🔐 生成 JWT') {
|
||||
steps {
|
||||
script {
|
||||
//JWT_TOKEN = sh(
|
||||
// script: "node ${CERT_DIR}/generate-jwt.js",
|
||||
// returnStdout: true
|
||||
//).trim()
|
||||
// 一行式 node -e "代码" 必须写在同一行!
|
||||
JWT_TOKEN = sh(
|
||||
script: '''
|
||||
node -e
|
||||
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);
|
||||
''',
|
||||
node -e "const fs=require('fs');const jwt=require('jsonwebtoken');const privateKey=fs.readFileSync(process.env.P8_FILE,'utf8');const token=jwt.sign({iss:process.env.API_ISSUER,exp:Math.floor(Date.now()/1000)+1200,aud:'appstoreconnect-v1'},privateKey,{algorithm:'ES256',header:{kid:process.env.API_KEY}});console.log(token);"
|
||||
''',
|
||||
returnStdout: true
|
||||
).trim()
|
||||
}
|
||||
|
||||
echo "✅ JWT 生成成功${JWT_TOKEN}"
|
||||
echo "✅ JWT 生成成功:${JWT_TOKEN}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user