您好,我正在学习如何使用 Next auth 进行身份验证。我已经使用 gmail 设置了 smtp,但是当我尝试从我的应用程序请求 madic 链接时,我收到此错误:
[next-auth][error][SIGNIN_EMAIL_ERROR]
https://next-auth.js.org/errors#signin_email_error Missing credentials for "PLAIN" {
error: {
message: 'Missing credentials for "PLAIN"',
stack: 'Error: Missing credentials for "PLAIN"\n' +
' at SMTPConnection._formatError (C:\\Users\\Jacob Mutale\\node_modules\\nodemailer\\lib\\smtp-connection\\index.js:790:19)\n' +
' at SMTPConnection.login (C:\\Users\\Jacob Mutale\\node_modules\\nodemailer\\lib\\smtp-connection\\index.js:444:38)\n' +
' at C:\\Users\\Jacob Mutale\\node_modules\\nodemailer\\lib\\smtp-transport\\index.js:272:32\n' +
' at SMTPConnection.<anonymous> (C:\\Users\\Jacob Mutale\\node_modules\\nodemailer\\lib\\smtp-connection\\index.js:213:17)\n' +
' at Object.onceWrapper (node:events:627:28)\n' +
' at SMTPConnection.emit (node:events:513:28)\n' +
' at SMTPConnection.emit (node:domain:489:12)\n' +
' at SMTPConnection._actionEHLO (C:\\Users\\Jacob Mutale\\node_modules\\nodemailer\\lib\\smtp-connection\\index.js:1325:14)\n' +
' at SMTPConnection._processResponse (C:\\Users\\Jacob Mutale\\node_modules\\nodemailer\\lib\\smtp-connection\\index.js:953:20)\n' +
' at SMTPConnection._onData (C:\\Users\\Jacob Mutale\\node_modules\\nodemailer\\lib\\smtp-connection\\index.js:755:14)',
name: 'Error'
},
providerId: 'email',
message: 'Missing credentials for "PLAIN"'
}
这是我的
auth/[...nextauth].js
文件:
import NextAuth from "next-auth";
import EmailProvider from "next-auth/providers/email";
import nodemailer from "nodemailer";
import { PrismaAdapter } from "@next-auth/prisma-adapter";
import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient();
console.log(process.env.EMAIL_SERVER_USER);
console.log(process.env.EMAIL_SERVER_PASSWORD);
export default NextAuth({
providers: [
EmailProvider({
server: {
host: process.env.EMAIL_SERVER_HOST,
port: process.env.EMAIL_SERVER_PORT,
auth: {
user: process.env.EMAIL_SERVER_USER,
password: process.env.EMAIL_SERVER_PASSWORD,
},
},
from: process.env.EMAIL_FROM,
maxAge: 10 * 60,
}),
],
adapter: PrismaAdapter(prisma),
});
只需更改密码即可通过
auth: {
user: process.env.EMAIL_SERVER_USER,
pass: process.env.EMAIL_SERVER_PASSWORD, <-- here
},