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 确定)。
session?
optional session: null | Session;SignInOptions
扩展
Record<string,unknown>
属性
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 扩展 boolean | true |
属性
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 的方法,data 和 status。
类型参数
| 类型参数 | 值 |
|---|---|
R 扩展 boolean | false |
UpdateSession()
type UpdateSession: (data?) => Promise<Session | null>;待办事项
文档
参数
| 参数 | 类型 |
|---|---|
data? | any |
返回
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): ElementReact Context 提供程序,用于包装应用程序(pages/),以便在任何地方都可以使用会话数据。
使用时,会话状态会自动同步到所有打开的选项卡/窗口,并在它们获得或失去焦点或状态更改时(例如,用户登录或注销)更新,前提是 SessionProviderProps.refetchOnWindowFocus 为 true。
SessionProvider 仅用于客户端,当使用 Next.js App Router (app/) 时,应优先使用 auth() 导出。
参数
| 参数 | 类型 |
|---|---|
props | SessionProviderProps |
返回
元素
getCsrfToken()
getCsrfToken(): Promise<string>返回当前跨站点请求伪造令牌 (CSRF 令牌),该令牌是进行更改状态请求(例如登录或注销或更新会话)所必需的。
返回
Promise<string>
getProviders()
getProviders(): Promise<null | ProvidersType>返回当前可用提供程序的客户端安全配置对象。
返回
Promise<null | ProvidersType>
getSession()
getSession(params?): Promise<null | Session>参数
| 参数 | 类型 |
|---|---|
params? | GetSessionParams |
返回
signIn()
signIn<P>(
provider?,
options?,
authorizationParams?): Promise<P extends RedirectableProviderType ? SignInResponse | undefined : undefined>启动登录流程,或将用户发送到列出所有可能提供程序的登录页面。处理 CSRF 防护。
类型参数
| 类型参数 | 值 |
|---|---|
P extends undefined | RedirectableProviderType | undefined |
参数
| 参数 | 类型 |
|---|---|
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 扩展 boolean | true |
参数
| 参数 | 类型 |
|---|---|
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> |