🍣

【Next.js】基礎から始めるNext.js API Routes【25Login Test】

2023/01/03に公開3

【25Login Test】

YouTube: https://youtu.be/wrC33cuo7No

https://youtu.be/wrC33cuo7No

今回はログインのテストを実行します。
もしユーザーのパスワード等を忘れてしまった場合は、
トップページで新しいユーザーを作成してお試しください。

ログイン実行時にVSコードのターミナルに
コンソールログで設定した内容が表示されます。

今回は少し見やすくするために、
区切り線を追加しています。

pages/api/auth/[...nextauth].js
import NextAuth from 'next-auth'
import CredentialsProvider from 'next-auth/providers/credentials'
import { prisma } from '../../../utils/prismaClient'

export default NextAuth({
  providers: [
    CredentialsProvider({
      name: 'Credentials',
      async authorize(credentials) {
        const result = await prisma.user.findUnique({
          where: {
            email: credentials.email,
          },
        })
        if (!result) {
          return null
        }
        if (credentials.password !== result.password) {
          throw new Error('Password wrong')
        }
        return result
      },
    }),
  ],
  secret: 'secretKey',
  session: {
    strategy: 'jwt',
  },
  jwt: {
    secret: 'secretKey',
  },
  callbacks: {
    async jwt({ token, user, account, profile, isNewUser }) {
      console.log('-------------token--------------')
      console.log('token :', token)
      console.log('user :', user)
      console.log('account :', account)
      console.log('profile :', profile)
      console.log('isNewUser :', isNewUser)
      return token
    },
    async session({ session, token, user }) {
      console.log('-------------session--------------')
      console.log('session :', session)
      console.log('token :', token)
      console.log('user :', user)
      return session
    },
  },
})

Discussion