Closed13

NextAuthを勉強する

じょーだんじょーだん

実際にuseSessionを使って、クライアント側でユーザーがログインしているのか、していないのか確かめる。
https://next-auth.js.org/getting-started/client#usesession

pages/index.tsx一部抜粋
  const data = useSession();
  console.log(data);

ログインしていない状態だと

{data: undefined, status: 'loading'}
{data: null, status: 'unauthenticated'}

となり、githubを利用してログインすると以下のようになった。

{data: undefined, status: 'loading'}
{data: {…}, status: 'authenticated'}

つまりstatusの値によってログインしているのか、していないのか分かるのか。

じょーだんじょーだん

今までのバックエンドの知識だとセッションidを基に、
サーバーにあるセッションファイルから値を取れるって認識なんだけど、
NextAuthだと違うのかな、

じょーだんじょーだん

middlewareとnext-authを組み合わせてみたけど、すごい。
https://next-auth.js.org/configuration/nextjs
によると

middleware.tsにて、以下の記述を追加するだけでアプリのルートの保護ができる。

middleware.ts
export { default } from "next-auth/middleware"

保護するページを指定したいときはmatcherを持つconfigをexportするだけ

middleware.ts
export { default } from "next-auth/middleware"
export const config = { matcher: ["/"] };

すごい!

実際に使ってみましたが、しっかりと「Sign in with GitHub」の認証ページに飛びました。

このスクラップは2023/10/09にクローズされました