Files
pfadi-bussle/pages/api/auth/[...nextauth].ts
2021-12-08 23:51:09 +01:00

40 lines
1.0 KiB
TypeScript

import { NextApiRequest, NextApiResponse } from 'next'
import NextAuth from "next-auth"
import EmailProvider from "next-auth/providers/email"
import { MongoDBAdapter } from "@next-auth/mongodb-adapter"
import { connect } from "../../../db"
import { Mongoose } from 'mongoose';
import type { MongoClient } from "mongodb";
let mongooseConnection: Mongoose;
async function getMongoClient() {
const mongoose: Mongoose = await connect();
const mongoDatabase: unknown = mongoose.connection.db;
return mongoDatabase as MongoClient;
}
export default async function auth(req: NextApiRequest, res: NextApiResponse) {
return await NextAuth(req, res, {
secret: process.env.NEXTAUTH_SECRET,
adapter: MongoDBAdapter(getMongoClient()),
providers: [
EmailProvider({
server: {
host: "smtp.sendgrid.net",
port: 587,
auth: {
user: "apikey",
pass: process.env.SENDGRID_API_KEY,
},
},
from: process.env.FROM_EMAIL
}),
],
})
}