UNPKG

@scu-xiaochuan/scu-pecourse-utils

Version:

36 lines 1.18 kB
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