as-services/libs/utils/crypto/verify-hmac-512-jwt.js
devthejo d5febb45c8
Some checks failed
/ build (map[dockerfile:./services/tasks/Dockerfile name:tasks]) (push) Failing after 1m25s
/ deploy (push) Has been skipped
/ build (map[dockerfile:./services/files/Dockerfile name:files]) (push) Failing after 1m34s
/ build (map[dockerfile:./services/app/Dockerfile name:app]) (push) Successful in 2m9s
/ build (map[dockerfile:./services/api/Dockerfile name:api]) (push) Failing after 1m42s
/ build (map[dockerfile:./services/web/Dockerfile name:web]) (push) Failing after 1m18s
/ build (map[dockerfile:./services/watchers/Dockerfile name:watchers]) (push) Failing after 1m22s
/ build (map[dockerfile:./services/hasura/Dockerfile name:hasura]) (push) Successful in 2m3s
chore(init): available sources
2025-04-13 10:34:01 +02:00

21 lines
483 B
JavaScript

const crypto = require("crypto")
module.exports = function verifyHMAC512JWT(token, secret) {
const parts = token.split(".")
if (parts.length !== 3) {
return false
}
const headerPayload = `${parts[0]}.${parts[1]}`
const signature = parts[2]
const newSignature = crypto
.createHmac("sha512", secret)
.update(headerPayload)
.digest("base64")
.replace(/\+/g, "-")
.replace(/\//g, "_")
.replace(/=+$/, "")
return newSignature === signature
}