Содержание
Next.js - это JavaScript-фреймворк, позволяющий разработчикам создавать фронтенд-веб-приложения, запускаемые на сервере. Это фреймворк на основе React, который прост в использовании и предоставляет ряд возможностей, таких как рендеринг на стороне сервера, разделение кода и статический экспорт.
В Next.js также есть пакет аутентификации Next Auth, который позволяет легко добавить аутентификацию в приложение Next.js. В этом руководстве мы покажем, как использовать Next Auth и Next.js 13 для создания приложения React с базовой аутентификацией на стороне сервера.
Зачем использовать Next Auth?
Next Auth - это безопасная система аутентификации для приложений Next.js. Она основана на JSON Web Tokens (JWT) и обеспечивает аутентификацию и авторизацию для приложений Next.js.
Что такое обработчики маршрутов?
В Next.js 13 обработчики маршрутов — это новая функция, позволяющая разработчикам создавать пользовательские обработчики запросов для заданного маршрута с помощью API Web Request и Response. Обработчики маршрутов заменяют собой предыдущие API-маршруты в Next.js.
Как настроить Next Auth
Чтобы настроить NextAuth в приложении Next.js, необходимо выполнить несколько шагов. Во-первых, необходимо создать файл с именем route.js в каталоге app/api/auth/[…nextauth]. Этот файл содержит обработчик динамических маршрутов для NextAuth.
Далее необходимо настроить провайдеров аутентификации. NextAuth поддерживает широкий спектр провайдеров, включая Google, Facebook, Twitter и другие. Настроить провайдеров можно, задав соответствующие переменные окружения или передав их в качестве опций в массив providers в конфигурации NextAuth. Ниже приведен пример настройки Google в качестве провайдера аутентификации в NextAuth:
// app/api/auth/[...nextauth]/route.js
import NextAuth from 'next-auth'
import GoogleProvider from 'next-auth/providers/google'
export const options={
GoogleProvider({
clientId: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
})
}
const handler=NextAuth(options)
export {handler as GET , handler as POST}
Как использовать обработчики маршрутов с Next Auth
import { options } from 'app/api/auth/[...nextauth]/route.js';
import { getServerSession } from 'next-auth/next';
async function page() {
const session = await getServerSession(options);
console.log(session.user);
}
Заключение
У меня есть 6-минутное видео об этом, надеюсь, оно поможет, если вам понравилось видео, не забудьте подписаться и нажать кнопку ”Мне нравится”.