Hello,
Je poste cela au cas où si quelqu'un utilise comme moi la v4.
Voici mon [...nextauth].js:
import NextAuth from 'next-auth';
import CredentialsProvider from 'next-auth/providers/credentials';
import { connectToDatabase } from '@/helpers/mongodb-client';
import { verifyPassword } from '@/helpers/auth';
export const authOptions = {
session: {
maxAge: 30 * 24 * 60 * 60, // 30 days
generateSessionToken: () => {
return randomUUID?.() ?? randomBytes(32).toString('hex');
},
},
providers: [
CredentialsProvider({
async authorize(credentials) {
const { email, password } = credentials;
const clientMongoDB = await connectToDatabase('portfolio');
const user = await clientMongoDB
.db()
.collection('users')
.findOne({ email: email });
if (!user) {
clientMongoDB.close();
throw new Error(
'Unable to authenticate, please check your credentials'
);
}
const isValid = await verifyPassword(password, user.password);
if (!isValid) {
clientMongoDB.close();
throw new Error(
'Unable to authenticate, please check your credentials'
);
}
clientMongoDB.close();
return {
email: user.email,
name: user.pseudo,
};
},
}),
],
};
export default NextAuth(authOptions);