Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/llms-txt-hub / packages/auth/src/server/index.ts |
| Date | Not specified in source |
| Repository | Janady13/llms-txt-hub |
| Revision | e0f4bf978d4df168369c7601d9c5f5ea89e84377 |
| Branch | main |
| Path or archive member | packages/auth/src/server/index.ts |
| Original SHA-256 | 3277ed7d4196f4dac431a6e2e1e4e370a499dc19e3370cdfc1500d7ee78a2acf |
| Git blob SHA | 28e738b6d44dcaa6607050eb770f0179f8318827 |
| Reading-copy SHA-256 | 3277ed7d4196f4dac431a6e2e1e4e370a499dc19e3370cdfc1500d7ee78a2acf |
Recovered source transcript
Download complete source text ↓63 lines · 1.4 KB
'use server'
import 'server-only'
import { auth as clerkAuth, currentUser as clerkCurrentUser } from '@clerk/nextjs/server'
import type { AuthUser } from '../core/types'
/**
* Return the current authenticated session or null
*/
export async function auth() {
const { userId } = await clerkAuth()
if (!userId) {
return null
}
const user = await clerkCurrentUser()
if (!user) {
return null
}
// Return session-like object for compatibility
return {
user: {
id: user.id,
email: user.primaryEmailAddress?.emailAddress || null,
user_metadata: {
user_name: user.username || null,
full_name: user.fullName || null,
avatar_url: user.imageUrl || null
}
}
}
}
/**
* Return the current authenticated user or null
*/
export async function currentUser(): Promise<AuthUser | null> {
const user = await clerkCurrentUser()
if (!user) {
return null
}
return {
id: user.id,
email: user.primaryEmailAddress?.emailAddress || null,
name: user.fullName || user.username || null,
user_metadata: {
user_name: user.username || null,
full_name: user.fullName || null,
avatar_url: user.imageUrl || null
},
externalAccounts: (user.externalAccounts || []).map((account: any) => ({
id: account.id,
provider: account.provider,
username: account.username || null
}))
}
}