25 lines
596 B
TypeScript
25 lines
596 B
TypeScript
import { t } from './server';
|
|
import { getUser } from '@/api/user/query';
|
|
import getServerConfig from '@/config/server';
|
|
import { TRPCError } from '@trpc/server';
|
|
|
|
const { COOKIE_TOKEN_NAME } = getServerConfig();
|
|
|
|
export const user = t.middleware(async ({ ctx, next }) => {
|
|
if (ctx.token === undefined || ctx.token === null || typeof ctx.token !== 'string') {
|
|
throw new TRPCError({
|
|
code: 'UNAUTHORIZED',
|
|
});
|
|
}
|
|
|
|
return next({
|
|
ctx: {
|
|
user: await getUser({
|
|
headers: {
|
|
Cookie: `${COOKIE_TOKEN_NAME}=${ctx.token}`,
|
|
},
|
|
}),
|
|
},
|
|
});
|
|
});
|