0

我正在学习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
}

但是当我尝试在客户端获取会话和控制台登录时,我只得到了这个

结果客户端

如何从服务器端获取所有数据?谢谢。

4

0 回答 0