UNPKG

@drop-in/new

Version:

A SvelteKit Svelte 5 PocketBase Starter Kit with a CLI

25 lines (20 loc) 632 B
import { jwtVerify, SignJWT } from 'jose'; export type JWTPayload = { sub: string; iat: number; exp?: number; }; export async function create_jwt(user_id: string) { const jwtPayload: JWTPayload = { sub: user_id, iat: Math.floor(Date.now() / 1000), }; return new SignJWT(jwtPayload) .setProtectedHeader({ alg: 'HS256' }) .setExpirationTime('30days') .sign(new TextEncoder().encode(process.env.JWT_SECRET)); } export async function verify_access_token(jwt: string): Promise<JWTPayload> { const { payload } = await jwtVerify(jwt, new TextEncoder().encode(process.env.JWT_SECRET)); return payload as JWTPayload; }