diff --git a/src/runtime/composables/session.ts b/src/runtime/composables/session.ts index 0c73ee9e..ac4735c9 100644 --- a/src/runtime/composables/session.ts +++ b/src/runtime/composables/session.ts @@ -1,9 +1,9 @@ import { useState, computed, useRequestFetch } from '#imports' -import type { UserSession } from '#auth-utils' +import type { UserSession, UserSessionComposable } from '#auth-utils' const useSessionState = () => useState('nuxt-session', () => ({})) -export const useUserSession = () => { +export function useUserSession(): UserSessionComposable { const sessionState = useSessionState() return { loggedIn: computed(() => Boolean(sessionState.value.user)), diff --git a/src/runtime/server/utils/session.ts b/src/runtime/server/utils/session.ts index 1c5dd042..f91a198d 100644 --- a/src/runtime/server/utils/session.ts +++ b/src/runtime/server/utils/session.ts @@ -59,7 +59,7 @@ export async function clearUserSession (event: H3Event) { return true } -export async function requireUserSession(event: H3Event) { +export async function requireUserSession(event: H3Event): Promise { const userSession = await getUserSession(event) if (!userSession.user) { diff --git a/src/runtime/types/index.ts b/src/runtime/types/index.ts index 2717a6e4..e0ea19bc 100644 --- a/src/runtime/types/index.ts +++ b/src/runtime/types/index.ts @@ -1,2 +1,2 @@ -export type { UserSession, User } from './session' +export type { User, UserSession, UserSessionComposable } from './session' export type { OAuthConfig } from './oauth-config' diff --git a/src/runtime/types/session.ts b/src/runtime/types/session.ts index f2eb8500..3a09073b 100644 --- a/src/runtime/types/session.ts +++ b/src/runtime/types/session.ts @@ -1,6 +1,16 @@ +import type { ComputedRef, Ref } from 'vue' + export interface User { } export interface UserSession { user?: User } + +export interface UserSessionComposable { + loggedIn: ComputedRef + user: ComputedRef + session: Ref, + fetch: () => Promise, + clear: () => Promise +}