Skip to main content

2. Showing the Login UI

What type of UI are you using?

1. Create the pages/auth/[[...path]].tsx page

  • Be sure to create the auth folder in the pages folder.
  • [[...path]].tsx will contain the component for showing SuperTokens UI

2. Create the Auth component:

pages/auth/[[...path]].tsx
import React, { useEffect } from 'react'
import dynamic from 'next/dynamic'
import { EmailPasswordPreBuiltUI } from 'supertokens-auth-react/recipe/emailpassword/prebuiltui';
import { redirectToAuth } from 'supertokens-auth-react'
import { canHandleRoute, getRoutingComponent } from 'supertokens-auth-react/ui'

const SuperTokensComponentNoSSR = dynamic<{}>(
new Promise((res) => res(() => getRoutingComponent([EmailPasswordPreBuiltUI]))),
{ ssr: false }
)

export default function Auth() {

// if the user visits a page that is not handled by us (like /auth/random), then we redirect them back to the auth page.
useEffect(() => {
if (canHandleRoute([EmailPasswordPreBuiltUI]) === false) {
redirectToAuth()
}
}, [])

return (
<SuperTokensComponentNoSSR />
)
}

3. Visit /auth page on your website

If you see a login UI, then you have successfully completed this step! You can also see all designs of our pre-built UI, for each page on this link.

If you cannot see the UI in your app, please feel free to ask questions on Discord