export const authOptions: NextAuthOptions = {
session: {
strategy: "jwt",
},
providers: [
CredentialsProvider({
name: "Credentials",
credentials: {
email: {
label: "Email",
type: "email",
},
password: { label: "Password", type: "password" },
},
async authorize(credentials) {
try {
const res = await fetch(
"http://ec2-...../api/admin/signIn",
{
method: "POST",
body: JSON.stringify(credentials),
headers: { "Content-Type": "application/json" },
}
);
const user = await res.json();
return user;
} catch (error) {
throw new Error(
errorMessage ? JSON.stringify(errorMessage) : String(error)
);
}
},
}),
],
callbacks: {
async jwt({ token, user }) {
if (user) {
token.role = user.role;
token.name = user.name;
token.token = user.token;
}
return token;
},
async session({ session, token, user }) {
if (token) {
session.user.role = token.role;
session.user.name = token.name;
session.user.token = token.token;
}
return session;
},
},
};
const handler = NextAuth(authOptions);
export { handler as GET, handler as POST };
export const authOptions: NextAuthOptions = {
session: {
strategy: "jwt",
},
providers: [
CredentialsProvider({
name: "Credentials",
credentials: {
email: {
label: "Email",
type: "email",
},
password: { label: "Password", type: "password" },
},
async authorize(credentials) {
try {
const res = await fetch(
"http://ec2-...../api/admin/signIn",
{
method: "POST",
body: JSON.stringify(credentials),
headers: { "Content-Type": "application/json" },
}
);
const user = await res.json();
return user;
} catch (error) {
throw new Error(
errorMessage ? JSON.stringify(errorMessage) : String(error)
);
}
},
}),
],
callbacks: {
async jwt({ token, user }) {
if (user) {
token.role = user.role;
token.name = user.name;
token.token = user.token;
}
return token;
},
async session({ session, token, user }) {
if (token) {
session.user.role = token.role;
session.user.name = token.name;
session.user.token = token.token;
}
return session;
},
},
};
const handler = NextAuth(authOptions);
export { handler as GET, handler as POST };