📈
ビルドの時authOptions関連エラー
NextAuth.js の authOptions は外部ファイルに切り出さないとエラーになりことをわかりました。
lib/auth.tsで別で管理したらエラーが消えました。
src/lib/auth.ts
import { addUser } from "@/service/user";
import NextAuth, { Session, User } from "next-auth";
import GoogleProvider from "next-auth/providers/google";
import type { NextAuthOptions } from "next-auth";
export const authOptions = {
providers: [
GoogleProvider({
clientId: process.env.GOOGLE_OAUTH_ID || "",
clientSecret: process.env.GOOGLE_OAUTH_SECRET || "",
}),
],
pages: {
signIn: "/auth/signin",
},
callbacks: {
async signIn({ user: { id, name, image, email } }) {
if (!email) {
return false;
}
addUser({
id,
name: name || "",
image,
email,
username: email.split("@")[0],
});
return true;
},
async session({ session, token }) {
const user = session?.user;
if (user) {
session.user = {
...user,
username: user.email?.split("@")[0] || "",
id: token.id as string,
};
}
return session;
},
async redirect({ url, baseUrl }) {
return baseUrl;
},
async jwt({ token, user }) {
if (user) {
token.id = user.id;
}
return token;
},
},
} satisfies NextAuthOptions;
export const { handlers, auth, signIn, signOut } = NextAuth(authOptions);
src/api/auth/[...nextauth]/route.ts
import { authOptions } from "@/lib/auth";
import NextAuth from "next-auth";
const handler = NextAuth(authOptions);
export { handler as GET, handler as POST };
Discussion