ln/app/server/graphql/resolvers/auth/logout.ts
2025-04-18 14:47:42 +03:00

32 lines
722 B
TypeScript

import { IdentityContext } from '@app/server/identity';
import { prisma } from '@app/server/prisma/client';
export async function LogoutResolver(
_: any,
__: any,
{ req, res, identity }: IdentityContext
): Promise<void> {
const cookie: { jwt?: string | null } = req.cookies;
if (cookie == null || cookie.jwt == null) return;
const refreshToken = cookie.jwt;
const user = await prisma.user.findUnique({
where: { refreshToken },
select: { id: true }
});
if (user == null) {
res.clearCookie('jwt', { httpOnly: true });
return;
}
await prisma.user.update({
where: {
id: user.id
},
data: { refreshToken: null }
});
res.clearCookie('jwt', { httpOnly: true });
}