リソースの保護
サーバサイド
frontend/src/app/myaccount/page.tsx
...(略)...
const MyAccountPage = async () => {
  const session = await auth();
  if (!session) return <div>Not authenticated</div>; // <- 追加
...(略)...
};
export default MyAccountPage;
サインアウトした状態で、下記URLにアクセスすると、セッション情報が表示されずに、「Not authenticated」と表示されます。
サインイン後は、正常にセッション情報が表示されます。
クライアントサイド
frontend/src/app/components/HelloAccount.tsx
...(略)...
const HelloAccount = () => {
  const { data: session, status } = useSession();
  return (
    <>
      {/* ↓修正 */}
      {status === 'loading' ? (
        <div>Loading...</div>
      ) : !session?.user ? (
        <div>ようこそ ゲスト さん!</div>
      ) : (
        <div>ようこそ {session.user.name} さん!</div>
      )}
      {/* ↑修正 */}
    </>
  );
};
export default HelloAccount;
サインアウトした状態で、下記URLにアクセスすると、「ようこそ ゲスト さん!」と表示されます。サインイン後は、「ようこそ 【ユーザ名】 さん!」のようにアカウント情報が表示されます。
参考
- Auth.js | Protecting
    
- Next.js (Client)