import { useSession, getSession } from "next-auth/react" import Layout from "../components/layout" import type { NextPageContext } from "next" export default function ServerSidePage() { // As this page uses Server Side Rendering, the `session` will be already // populated on render without needing to go through a loading stage. // This is possible because of the shared context configured in `_app.js` that // is used by `useSession()`. const { data: session, status } = useSession() const loading = status === "loading" return (

Server Side Rendering

This page uses the universal getSession() method in{" "} getServerSideProps().

Using getSession() in{" "} getServerSideProps() is the recommended approach if you need to support Server Side Rendering with authentication.

The advantage of Server Side Rendering is this page does not require client side JavaScript.

The disadvantage of Server Side Rendering is that this page is slower to render.

) } // Export the `session` prop to use sessions with Server Side Rendering export async function getServerSideProps(context: NextPageContext) { return { props: { session: await getSession(context), }, } }