Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/llms-txt-hub / apps/web/app/api/user/delete-account/route.ts |
| Date | Not specified in source |
| Repository | Janady13/llms-txt-hub |
| Revision | e0f4bf978d4df168369c7601d9c5f5ea89e84377 |
| Branch | main |
| Path or archive member | apps/web/app/api/user/delete-account/route.ts |
| Original SHA-256 | 0b51c27bbb338e9a6d5b43707db69c8ca4f1eb52043982d5938b8e2a13fe7d59 |
| Git blob SHA | c2d9e4d8175fda91259d6c885c1443f6ec2a2b00 |
| Reading-copy SHA-256 | 0b51c27bbb338e9a6d5b43707db69c8ca4f1eb52043982d5938b8e2a13fe7d59 |
Recovered source transcript
Download complete source text ↓46 lines · 1.3 KB
import { createClerkClient } from '@clerk/backend'
import { auth } from '@thedaviddias/auth'
import { logger } from '@thedaviddias/logging'
import { NextResponse } from 'next/server'
const clerk = createClerkClient({
secretKey: process.env.CLERK_SECRET_KEY!
})
export async function DELETE() {
try {
// Get the current user session
const session = await auth()
if (!session?.user?.id) {
return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })
}
// Delete the user from Clerk
await clerk.users.deleteUser(session.user.id)
// Note: The signOut will be handled on the client side after this succeeds
// Clerk will automatically invalidate all sessions for the deleted user
return NextResponse.json({
success: true,
message: 'Account deleted successfully'
})
} catch (error) {
logger.error('Error deleting user account:', { data: error, tags: { type: 'api' } })
// Check if the error is because user is already deleted
if (error instanceof Error && error.message.includes('not found')) {
return NextResponse.json({
success: true,
message: 'Account already deleted'
})
}
return NextResponse.json(
{ error: 'Failed to delete account. Please contact support.' },
{ status: 500 }
)
}
}