<SignOutButton>
The <SignOutButton>
component is a button that signs a user out. By default, it is a <button>
tag that says Sign Out , but it is completely customizable by passing children.
Name signOutCallback?
Type () => (void | Promise<any>)
Description A promise to handle after the sign out has successfully happened.
Name signOutOptions?
Type SignOutOptions
Description Options for signing out. Includes sessionId
which if passed, signs the user out of a specific session. Useful for multi-session applications.
Name children?
Type React.ReactNode
Description Children you want to wrap the <SignOutButton>
in.
The type of the signOutOptions
prop for the <SignOutButton>
component is defined as follows:
Name sessionId?
Type string
Description The ID of a specific session to sign out of. Useful for multi-session applications.
app /page.js import { SignOutButton } from "@clerk/nextjs" ;
export default function Home () {
return (
< div >
< SignOutButton />
</ div >
);
}
pages /index.js import { SignOutButton } from "@clerk/nextjs" ;
export default function Home () {
return (
< div >
< SignOutButton />
</ div >
);
}
example.js import { SignOutButton } from "@clerk/clerk-react" ;
export default function Example () {
return (
< div >
< SignOutButton />
</ div >
);
}
pages /index.js import { SignOutButton } from "@clerk/remix" ;
export default function Home () {
return (
< div >
< SignOutButton />
</ div >
);
}
pages /index.js import { SignOutButton } from "gatsby-plugin-clerk" ;
export default function Home () {
return (
< div >
< SignOutButton />
</ div >
);
}
You can create a custom button by wrapping your own button, or button text, in the <SignOutButton>
component.
app /page.js import { SignOutButton } from "@clerk/nextjs" ;
export default function Home () {
return (
< div >
< SignOutButton >
< button >Sign out</ button >
</ SignOutButton >
</ div >
);
}
pages /index.js import { SignOutButton } from "@clerk/nextjs" ;
export default function Home () {
return (
< div >
< SignOutButton >
< button >Sign out</ button >
</ SignOutButton >
</ div >
);
}
example.js import { SignOutButton } from "@clerk/clerk-react" ;
export default function Example () {
return (
< div >
< SignOutButton >
< button >Sign out</ button >
</ SignOutButton >
</ div >
);
}
pages /index.js import { SignOutButton } from "@clerk/remix" ;
export default function Home () {
return (
< div >
< SignOutButton >
< button >Sign out</ button >
</ SignOutButton >
</ div >
);
}
pages /index.js import { SignOutButton } from "gatsby-plugin-clerk" ;
export default function Home () {
return (
< div >
< SignOutButton >
< button >Sign out</ button >
</ SignOutButton >
</ div >
);
}
Clicking the <SignOutButton>
component signs the user out of all sessions. This is the default behavior.
You can sign out of a specific session by passing in a sessionId
to the signOutOptions
prop. This is useful for signing a single account out of a multi-session (multiple account) application.
In the example below, the sessionId
is retrieved from the useAuth()
hook. If the user is not signed in, the sessionId
will be null
, and the user is shown the <SignInButton>
component. If the user is signed in, the user is shown the <SignOutButton>
component, which when clicked, signs the user out of that specific session.
app /page.tsx "use client"
import { SignInButton , SignOutButton , useAuth } from "@clerk/nextjs" ;
export default function Home () {
const { sessionId } = useAuth ();
if ( ! sessionId) {
return (
< div >
< SignInButton />
</ div >
);
}
return (
< div >
< SignOutButton signOutOptions = {{ sessionId }} />
</ div >
);
}
pages /index.tsx import { SignInButton , SignOutButton , useAuth } from "@clerk/nextjs" ;
export default function Home () {
const { sessionId } = useAuth ();
if ( ! sessionId) {
return (
< div >
< SignInButton />
</ div >
);
}
return (
< div >
< SignOutButton signOutOptions = {{ sessionId }} />
</ div >
);
}
example.js import { SignInButton , SignOutButton , useAuth } from "@clerk/clerk-react" ;
export default function Home () {
const { sessionId } = useAuth ();
if ( ! sessionId) {
return (
< div >
< SignInButton />
</ div >
);
}
return (
< div >
< SignOutButton signOutOptions = {{ sessionId }} />
</ div >
);
}
pages /index.js import { SignInButton , SignOutButton , useAuth } from "@clerk/remix" ;
export default function Home () {
const { sessionId } = useAuth ();
if ( ! sessionId) {
return (
< div >
< SignInButton />
</ div >
);
}
return (
< div >
< SignOutButton signOutOptions = {{ sessionId }} />
</ div >
);
}
pages /index.js import { SignInButton , SignOutButton , useAuth } from "gatsby-plugin-clerk" ;
export default function Home () {
const { sessionId } = useAuth ();
if ( ! sessionId) {
return (
< div >
< SignInButton />
</ div >
);
}
return (
< div >
< SignOutButton signOutOptions = {{ sessionId }} />
</ div >
);
}