coolify/apps/server/src/trpc/context.ts
Andras Bacsai 4ad7e1f8e6 wip
2022-12-12 16:04:41 +01:00

22 lines
624 B
TypeScript

import type { inferAsyncReturnType } from '@trpc/server';
import type { CreateFastifyContextOptions } from '@trpc/server/adapters/fastify';
import jwt from 'jsonwebtoken';
import { env } from '../env';
export interface User {
userId: string;
teamId: string;
permission: string;
isAdmin: boolean;
iat: number;
}
export function createContext({ req }: CreateFastifyContextOptions) {
const token = req.headers.authorization;
let user: User | null = null;
if (token) {
user = jwt.verify(token, env.COOLIFY_SECRET_KEY) as User;
}
return { user };
}
export type Context = inferAsyncReturnType<typeof createContext>;