Расширение сессии Auth.js
// Импортируем объект `prisma` из файла "./prisma".
// `prisma` предоставляет интерфейс для взаимодействия с базой данных через Prisma ORM.
import { prisma } from "./prisma";
// Асинхронная функция `getUserByEmail`, которая принимает адрес электронной почты в качестве аргумента.
export const getUserByEmail = async (email: string) => {
try {
// Используем метод `prisma.user.findUnique` для поиска уникальной записи пользователя в базе данных по полю email.
const user = await prisma.user.findUnique({
where: {
// Задаем критерий поиска - объект с полем `email`.
email: email,
},
// Определяем, какие поля пользователя нужно вернуть из базы данных:
// `name` и `emailVerified` (проверен ли email).
select: {
name: true,
emailVerified: true,
},
});
// Возвращаем найденного пользователя (объект).
return user;
} catch {
// Если произошла ошибка (например, пользователь не найден), возвращаем `null`.
return null;
}
};
// Асинхронная функция `getUserById`, которая принимает идентификатор пользователя как аргумент.
export const getUserById = async (id: string) => {
try {
// Ищем уникального пользователя по его идентификатору с помощью метода `prisma.user.findUnique`.
const user = await prisma.user.findUnique({ where: { id } });
// Возвращаем найденного пользователя.
return user;
} catch {
// Если произошла ошибка (например, пользователь не найден), возвращаем `null`.
return null;
}
};
Auth.js
Next.js
Обсудим ваш проект?
Не ждите идеального момента или подходящего времени — начинайте прямо сейчас! Свяжитесь со мной, и я помогу воплотить ваши идеи в реальность.