Files
documenso/packages/lib/server-only/public-api/get-user-by-token.ts
2023-12-14 11:05:39 +02:00

29 lines
585 B
TypeScript

import { prisma } from '@documenso/prisma';
export const checkUserFromToken = async ({ token }: { token: string }) => {
const user = await prisma.user.findFirst({
where: {
ApiToken: {
some: {
token: token,
},
},
},
include: {
ApiToken: true,
},
});
if (!user) {
throw new Error('Invalid token');
}
const tokenObject = user.ApiToken.find((apiToken) => apiToken.token === token);
if (!tokenObject || new Date(tokenObject.expires) < new Date()) {
throw new Error('Expired token');
}
return user;
};