@scu-xiaochuan/scu-pecourse-utils
Version:
36 lines • 1.18 kB
JavaScript
import * as CryptoJS from 'crypto-js';
import { jwt_secret } from './constants';
export function createJWT(header, payload, secret) {
const encodedHeader = CryptoJS.enc.Base64url.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(header)));
const encodedPayload = CryptoJS.enc.Base64url.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(payload)));
const signatureBase = `${encodedHeader}.${encodedPayload}`;
const signature = CryptoJS.HmacSHA256(signatureBase, secret);
const encodedSignature = CryptoJS.enc.Base64url.stringify(signature);
return `${signatureBase}.${encodedSignature}`;
}
export function createNBFAndExp() {
const nbf = Math.floor(new Date().getTime() / 1000);
const exp = nbf + 172800;
return {
nbf,
exp,
};
}
export function createScuPeJWT({ id, exp, nbf, }) {
const header = {
typ: 'JWT',
alg: 'HS256',
};
const secret = jwt_secret;
const payload = {
role: '1',
name: id,
userid: id,
iss: 'restapiuser',
aud: secret,
exp,
nbf,
};
return createJWT(header, payload, secret);
}
//# sourceMappingURL=jwt.js.map