跳至内容
从 NextAuth.js v4 迁移?阅读 我们的迁移指南.

React

NextAuth.js 是 Auth.js 的官方 Next.js 应用程序集成。它同时支持 客户端组件页面路由器。它包含用于登录、注销、钩子和 React 上下文提供程序的方法,用于包装您的应用程序并将会话数据提供给任何地方。

要在 服务器操作 中使用,请查看 这些方法

GetSessionParams

属性

broadcast?

optional broadcast: boolean;

event?

optional event: string;

triggerEvent?

optional triggerEvent: boolean;

SessionProviderProps

如果您有 30 天(默认值)或更长时间的会话过期时间,那么您可能不需要更改任何默认选项。

但是,如果您需要自定义会话行为和/或使用较短的会话过期时间,您可以将选项传递给提供程序以自定义 useSession 钩子的行为。

属性

basePath?

optional basePath: string;

baseUrl?

optional baseUrl: string;

children

children: ReactNode;

refetchInterval?

optional refetchInterval: number;

会话将重新获取的时间间隔(以秒为单位)。如果设置为 0(默认值),则不会轮询会话。

refetchOnWindowFocus?

optional refetchOnWindowFocus: boolean;

SessionProvider 会在用户在窗口之间切换时自动重新获取会话。如果设置为 true(默认值),则会激活此行为。

refetchWhenOffline?

optional refetchWhenOffline: false;

设置为 false 以在设备没有互联网访问权限离线时停止轮询(由 navigator.onLine 确定)。

navigator.onLine 文档

session?

optional session: null | Session;

SignInOptions

扩展

属性

callbackUrl?

optional callbackUrl: string;
已弃用

改为使用 redirectTo

redirect?

optional redirect: boolean;

您可能希望在同一页面上处理登录响应,而不是重定向到另一个页面。例如,如果发生错误(例如用户提供的错误凭据),您可能希望在输入字段上显示内联错误消息。

为此,您可以将此选项设置为 redirect: false

redirectTo?

optional redirectTo: string;

指定在成功登录后应将用户重定向到哪里。默认为启动登录的页面 URL。


SignInResponse

属性

code

code: undefined | string;

error

error: undefined | string;

ok

ok: boolean;

status

status: number;

url

url: null | string;

SignOutParams<R>

类型参数

类型参数
R 扩展 booleantrue

属性

callbackUrl?

optional callbackUrl: string;
已弃用

改为使用 redirectTo

redirect?

optional redirect: R;

[文档](https://next-auth.js.org/getting-started/client#using-the-redirect-false-option-1

redirectTo?

optional redirectTo: string;

如果您传递 redirect: false,则页面不会重新加载。会话将被删除,并且 useSession 会收到通知,因此任何关于用户的指示将自动显示为已注销。它可以为用户提供非常好的体验。


LiteralUnion<T, U>

type LiteralUnion<T, U>: T | U & Record<never, never>;

类型参数

类型参数
T 扩展 U-
U字符串

SessionContextValue<R>

type SessionContextValue<R>: R extends true ? {
  data: Session;
  status: "authenticated";
  update: UpdateSession;
  } | {
  data: null;
  status: "loading";
  update: UpdateSession;
  } : {
  data: Session;
  status: "authenticated";
  update: UpdateSession;
  } | {
  data: null;
  status: "unauthenticated" | "loading";
  update: UpdateSession;
};

useSession() 返回一个包含三个内容的对象:一个名为 update 的方法,datastatus

类型参数

类型参数
R 扩展 booleanfalse

UpdateSession()

type UpdateSession: (data?) => Promise<Session | null>;

待办事项

文档

参数

参数类型
data?any

返回

Promise<Session | null>


SessionContext

const SessionContext: Context<undefined | {
  data: Session;
  status: "authenticated";
  update: UpdateSession;
  } | {
  data: null;
  status: "loading" | "unauthenticated";
  update: UpdateSession;
}>;

__NEXTAUTH

const __NEXTAUTH: AuthClientConfig;

SessionProvider()

SessionProvider(props): Element

React Context 提供程序,用于包装应用程序(pages/),以便在任何地方都可以使用会话数据。

使用时,会话状态会自动同步到所有打开的选项卡/窗口,并在它们获得或失去焦点或状态更改时(例如,用户登录或注销)更新,前提是 SessionProviderProps.refetchOnWindowFocustrue

SessionProvider 仅用于客户端,当使用 Next.js App Router (app/) 时,应优先使用 auth() 导出。

参数

参数类型
propsSessionProviderProps

返回

元素


getCsrfToken()

getCsrfToken(): Promise<string>

返回当前跨站点请求伪造令牌 (CSRF 令牌),该令牌是进行更改状态请求(例如登录或注销或更新会话)所必需的。

CSRF 防护:双重提交 Cookie

返回

Promise<string>


getProviders()

getProviders(): Promise<null | ProvidersType>

返回当前可用提供程序的客户端安全配置对象。

返回

Promise<null | ProvidersType>


getSession()

getSession(params?): Promise<null | Session>

参数

参数类型
params?GetSessionParams

返回

Promise<null | Session>


signIn()

signIn<P>(
   provider?, 
   options?, 
authorizationParams?): Promise<P extends RedirectableProviderType ? SignInResponse | undefined : undefined>

启动登录流程,或将用户发送到列出所有可能提供程序的登录页面。处理 CSRF 防护。

类型参数

类型参数
P extends undefined | RedirectableProviderTypeundefined

参数

参数类型
provider?LiteralUnion<P extends RedirectableProviderType ? BuiltInProviderType | P : BuiltInProviderType>
options?SignInOptions
authorizationParams?SignInAuthorizationParams

返回

Promise<P extends RedirectableProviderType ? SignInResponse | undefined : undefined>


signOut()

signOut<R>(options?): Promise<R extends true ? undefined : SignOutResponse>

通过销毁当前会话来启动注销。处理 CSRF 防护。

类型参数

类型参数
R 扩展 booleantrue

参数

参数类型
options?SignOutParams<R>

返回

Promise<R extends true ? undefined : SignOutResponse>


useSession()

useSession<R>(options?): SessionContextValue<R>

React Hook,可让您访问已登录用户的会话数据并进行修改。

useSession 仅用于客户端,当使用 Next.js App Router (app/) 时,应优先使用 auth() 导出。

类型参数

类型参数
R 扩展 boolean

参数

参数类型
options?UseSessionOptions<R>

返回

SessionContextValue<R>

Auth.js © Balázs Orbán 和团队 -2024