einhornimmond 987582c3ef Revert "use root biome config for backend, add useImportType rule"
This reverts commit bb8132791557fb9dcbf117ff7c3622a83e2e3730.
2025-04-30 09:29:09 +02:00

36 lines
1.0 KiB
TypeScript

import { SignJWT, jwtVerify } from 'jose'
import { CONFIG } from '@/config/'
import { LogError } from '@/server/LogError'
import { CustomJwtPayload } from './CustomJwtPayload'
export const decode = async (token: string): Promise<CustomJwtPayload | null> => {
if (!token) {
throw new LogError('401 Unauthorized')
}
try {
const secret = new TextEncoder().encode(CONFIG.JWT_SECRET)
const { payload } = await jwtVerify(token, secret, {
issuer: 'urn:gradido:issuer',
audience: 'urn:gradido:audience',
})
return payload as CustomJwtPayload
} catch (_err) {
return null
}
}
export const encode = async (gradidoID: string): Promise<string> => {
const secret = new TextEncoder().encode(CONFIG.JWT_SECRET)
const token = await new SignJWT({ gradidoID, 'urn:gradido:claim': true })
.setProtectedHeader({ alg: 'HS256' })
.setIssuedAt()
.setIssuer('urn:gradido:issuer')
.setAudience('urn:gradido:audience')
.setExpirationTime(CONFIG.JWT_EXPIRES_IN)
.sign(secret)
return token
}