如何解决在下一次身份验证中使用凭据
我正在学习 nextjs 并尝试使 auth 使用 next auth, 但是我遇到了问题,所以当我从我的数据库中获取数据时无法将数据发送到客户端
import NextAuth from "next-auth";
import Providers from "next-auth/providers";
import { ConnectDatabase } from "../../../lib/db";
import { VertifyPassword } from "../../../lib/password";
export default NextAuth({
session: {
jwt: true,},providers: [
Providers.Credentials({
async authorize(credentials) {
let client;
try {
client = await ConnectDatabase();
} catch (error) {
throw new Error("Failed connet to database.");
}
const checkEmail = await client
.db()
.collection("users")
.findOne({ email: credentials.data });
const checkPhone = await client
.db()
.collection("users")
.findOne({ phone: credentials.data });
let validData;
if (!checkEmail && !checkPhone) {
client.close();
throw new Error("Email atau No HP tidak terdaftar.");
} else if (checkEmail) {
validData = checkEmail;
} else if (checkPhone) {
validData = checkPhone;
}
const checkPassword = await VertifyPassword(
credentials.password,validData.password
);
if (!checkPassword) {
client.close();
throw new Error("Password Salah.");
}
client.close();
return validData;
},}),],});
这是我在服务器端尝试 console.log 时的 validData 结果
{
_id: 60a92f328dc04f58207388d1,email: 'user@user.com',phone: '087864810221',password: '$2a$12$6eq0GMzfhz/PFJDpRuE3J.hzF.GzuEZCiQ39adL6mX4K97edSEsSK',point: 0,role: 'user',accountstatus: false
}
但是当我在客户端尝试 getSession 和控制台登录时,我只得到了这个
如何从服务器端获取所有数据?谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。