サインイン・サインアウトボタンの追加
サインインボタンの追加
frontend/src/app/components/auth/ButtonSignIn.tsx
'use client';
import { signIn } from 'next-auth/react';
type Props = {
  provider: string;
};
export function ButtonSignIn(props: Props) {
  return (
    <button className="cursor-pointer" onClick={() => signIn(props.provider)}>
      Sign In
    </button>
  );
}
サインアウトボタンの追加
frontend/src/app/components/auth/ButtonSignOut.tsx
'use client';
import { signOut } from 'next-auth/react';
export function ButtonSignOut() {
  return (
    <button className="cursor-pointer" onClick={() => signOut()}>
      Sign Out
    </button>
  );
}
サインインボタン、サインアウトボタンへのリンクの追加
frontend/src/app/components/Header.tsx
import Link from 'next/link';
import React from 'react';
import AccountMenu from './ui/AccountMenu';
import { ButtonSignIn } from './auth/ButtonSignIn'; // <- 追加
const Header = () => {
  return (
...(略)...
        <nav className="flex items-center justify-between text-sm font-medium">
          <div className="p-2">
            <Link href="/about/">About</Link>
          </div>
          <div className="p-2">
            <ButtonSignIn provider="" /> {/* <- Sign Inを修正 */}
          </div>
          <AccountMenu />
        </nav>
...(略)...
  );
};
export default Header;
frontend/src/app/components/ui/AccountMenu.tsx
...(略)...
import Logout from '@mui/icons-material/Logout';
import { ButtonSignOut } from '../auth/ButtonSignOut'; // <- 追加
export default function AccountMenu() {
...(略)...
  return (
...(略)...
        <MenuItem onClick={handleClose}>
          <ListItemIcon>
            <Logout fontSize="small" />
          </ListItemIcon>
          <ButtonSignOut /> {/* <- Logoutを修正 */}
        </MenuItem>
...(略)...
  );
}
ブラウザで下記URLにアクセスし、ヘッダからSign Inをクリックしてください。ただし、現時点では、認証クライアントを作成していませんので、Sing Inをクリックしても、空のボックスが表示されます。
参考
- Auth.js | Login
    
- Next.js (Client)
 
 - Auth.js | Login
    
- Next.js (Client)