-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerateJWT.js
51 lines (49 loc) · 1.36 KB
/
generateJWT.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import AWS from 'aws-sdk'
import fs from 'fs'
import jwt from 'jsonwebtoken'
export const getNewJWT = () =>
console.log("Generating new JWT...") ||
new AWS.SecretsManager({ region: process?.env?.AWS_REGION || 'us-east-1'})
.getSecretValue({
SecretId: "heimdall-qa",
VersionStage: 'AWSCURRENT'
})
.promise()
.then(
result => {
return Promise.resolve(result?.SecretString)
}
)
.then(
secret =>
jwt.sign(
{
data: 'this is an token for local UI development',
},
secret,
{ expiresIn: '1d' }
)
)
.then(
token =>
`export const getLocalToken = () => '${token}'`
)
.then(
tokenString =>
fs.writeFileSync("./src/token.js", tokenString, { flag: 'w' })
)
.then(
() =>
`Successfully wrote /src/token.js with a RAPID JWT token that will last for 1 day.\n`
)
.catch(
error => {
`Failed to generate new JWT, reason: ${error?.message}\n`
return Promise.reject(error)
}
)
if (process.argv[1].split('/')[process.argv[1].split('/').length - 1] === import.meta.url.split('/')[import.meta.url.split('/').length - 1]) {
getNewJWT()
.then(console.log)
.catch(console.error)
}