25 lines
570 B
TypeScript
25 lines
570 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 (process.env.NODE_ENV !== 'development' && !ctx.token) {
|
|
throw new TRPCError({
|
|
code: 'UNAUTHORIZED',
|
|
});
|
|
}
|
|
|
|
return next({
|
|
ctx: {
|
|
user: await getUser({
|
|
headers: {
|
|
Cookie: `${COOKIE_TOKEN_NAME}=${ctx.token}`,
|
|
},
|
|
}),
|
|
},
|
|
});
|
|
});
|