Files
leaudit-platform-frontend/app/api/jwt-helper.server.ts
T

31 lines
788 B
TypeScript

// app/api/jwt-helper.server.ts
import { getUserSession } from './login/auth.server';
/**
* 从 request 中获取 JWT token
* @param request Remix Request 对象
* @returns JWT token 或 undefined
*/
export async function getJwtFromRequest(request: Request): Promise<string | undefined> {
const { frontendJWT } = await getUserSession(request);
return frontendJWT || undefined;
}
/**
* 包装 PostgrestParams,自动添加 JWT
* @param request Remix Request 对象
* @param params 原始参数
* @returns 包含 JWT 的参数
*/
export async function withJwt<T extends { token?: string }>(
request: Request,
params?: T
): Promise<T & { token: string | undefined }> {
const jwt = await getJwtFromRequest(request);
return {
...params as T,
token: jwt
};
}