add otp swagger2
This commit is contained in:
28
app/api/auth/mobile/logout/route.ts
Normal file
28
app/api/auth/mobile/logout/route.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
import { db } from "@/lib/db";
|
||||
import { hashToken, revokeRefreshTokenFamily } from "@/lib/mobileTokens";
|
||||
|
||||
export async function POST(req: NextRequest) {
|
||||
const authHeader = req.headers.get("authorization");
|
||||
const accessToken = authHeader?.match(/^Bearer\s+(.+)$/i)?.[1];
|
||||
const { refreshToken } = await req.json().catch(() => ({}));
|
||||
|
||||
if (accessToken) {
|
||||
await db.session.deleteMany({
|
||||
where: { sessionToken: accessToken },
|
||||
});
|
||||
}
|
||||
|
||||
if (typeof refreshToken === "string" && refreshToken.trim()) {
|
||||
const token = await db.refreshToken.findUnique({
|
||||
where: { tokenHash: hashToken(refreshToken.trim()) },
|
||||
select: { userId: true, familyId: true },
|
||||
});
|
||||
|
||||
if (token) {
|
||||
await revokeRefreshTokenFamily(token.userId, token.familyId);
|
||||
}
|
||||
}
|
||||
|
||||
return NextResponse.json({ ok: true });
|
||||
}
|
||||
Reference in New Issue
Block a user