39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import "next-auth"
|
|
import type { NextRequest } from "next/server"
|
|
|
|
// Module augmentation
|
|
// https://authjs.dev/getting-started/typescript#popular-interfaces-to-augment
|
|
declare module "next-auth" {
|
|
/**
|
|
* The shape of the user object returned in the OAuth providers' `profile` callback,
|
|
* or the second parameter of the `session` callback, when using a database.
|
|
*/
|
|
interface User {
|
|
given_name: string
|
|
sub: string
|
|
}
|
|
/**
|
|
* The shape of the account object returned in the OAuth providers' `account` callback,
|
|
* Usually contains information about the provider being used, like OAuth tokens (`access_token`, etc).
|
|
*/
|
|
interface Account {}
|
|
|
|
/**
|
|
* Returned by `useSession`, `auth`, contains information about the active session.
|
|
*/
|
|
interface Session {}
|
|
|
|
/**
|
|
* NextAuthRequest isn't exported by next-auth so we declare a copy
|
|
* of how they do it to support or switch in middleware.ts
|
|
*/
|
|
interface NextAuthRequest extends NextRequest {
|
|
auth: Session | null
|
|
}
|
|
}
|
|
|
|
declare module "next-auth/jwt" {
|
|
/** Returned by the `jwt` callback and `auth`, when using JWT sessions */
|
|
interface JWT {}
|
|
}
|