Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+666новых вакансий за сутки·52 265вакансий открыто сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 686
РезюмеAIПодготовкаСтатьи
ТарифыТарифы
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 394 кандидата открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Облачные технологии6 898
  • Python5 973
  • QA вакансии2 239
  • Android1 143
  • Инженер данных922
  • Продакт-менеджер346

Разработка

  • iOS1 093
  • Backend вакансии1 020
  • Fullstack вакансии448
  • AI вакансии378
  • Frontend вакансии369
  • Mobile вакансии27

По стеку

  • Go3 345
  • Java2 037
  • Kotlin908
  • Node.js746
  • Rust492
  • .NET481
  • PHP278
  • C++265
  • C#199

DevOps и инфраструктура

  • Kubernetes3 893
  • Linux-инфраструктура3 013
  • Terraform / IaC2 240
  • DevOps вакансии1 855
  • CI/CD1 066
  • Мониторинг и Observability1 051
  • SRE304
  • Кибербезопасность52

Аналитика и данные

  • Аналитик данных542
  • Data Scientist482
  • Бизнес-аналитик455
  • Системный аналитик60

Другие направления

  • Проджект-менеджер126
  • UI/UX дизайн74
  • Ручное тестирование14

По регионам

  • Вакансии в США27 007
  • Вакансии в Европе10 890
  • Работа в России3 242
  • Вакансии в Канаде2 370

По формату

  • Удалённые вакансии44 577
  • Релокация в США26 904
  • Гибридная работа5 209
  • Офисная работа3 834

По уровню

  • Senior вакансии22 591
  • Middle вакансии12 174
  • Junior вакансии4 013

Сейчас нанимают

Все компании
  • Rakuten189 вакансий
  • ASML163 вакансии
  • Grab134 вакансии
  • Wise81 вакансия
  • Infobip28 вакансий
  • Darktrace17 вакансий
  • Spotify17 вакансий
  • Celonis14 вакансий
  • UiPath13 вакансий
  • Adyen9 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме NuxtВсе вопросы
NuxtSeniorПроектирование систем

Как реализовать аутентификацию в Nuxt 3? Что такое nuxt-auth и аналогичные подходы?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Аутентификацию в Nuxt 3 реализуют через модуль @sidebase/nuxt-auth (Auth.js под капотом) с OAuth-провайдерами или вручную через httpOnly cookie + server middleware + JWT. Модуль предоставляет composable useAuth() с методами signIn/signOut и глобальный route middleware.

Модуль nuxt-auth (sidebase)

Наиболее распространённый сторонний модуль — @sidebase/nuxt-auth. Он оборачивает Auth.js (бывший NextAuth.js) и предоставляет два режима:

  • authjs — serverHandler на базе Auth.js с поддержкой OAuth-провайдеров (GitHub, Google и др.), JWT и базы данных через адаптеры.
  • local — упрощённый режим для собственного REST API: логин/логаут через указанные endpoints, токен хранится в cookie или localStorage.
npx nuxi module add @sidebase/nuxt-auth

Конфигурация в nuxt.config.ts:

export default defineNuxtConfig({
  modules: ['@sidebase/nuxt-auth'],
  auth: {
    provider: {
      type: 'authjs'
    },
    globalAppMiddleware: true
  }
})

Серверный обработчик server/api/auth/[...].ts:

import { NuxtAuthHandler } from '#auth'
import GithubProvider from 'next-auth/providers/github'

export default NuxtAuthHandler({
  secret: process.env.AUTH_SECRET,
  providers: [
    GithubProvider.default({
      clientId: process.env.GITHUB_CLIENT_ID,
      clientSecret: process.env.GITHUB_CLIENT_SECRET
    })
  ]
})

В компоненте или странице:

const { data: session, signIn, signOut, status } = useAuth()
// status: 'authenticated' | 'unauthenticated' | 'loading'

Аутентификация в Nuxt 3: общий подход

Nuxt 3 не навязывает единственный способ аутентификации — вы можете использовать готовые модули, собственные composable-функции или интеграцию с внешними провайдерами. Выбор зависит от требований проекта: нужен ли OAuth, сессии на сервере или JWT в cookie.

Ручная реализация через useCookie и server middleware

Для полного контроля можно обойтись без сторонних модулей. Схема: логин через API-endpoint → получение JWT → сохранение в httpOnly cookie → server middleware проверяет токен на каждом запросе.

// server/api/login.post.ts
import { H3Event, setCookie } from 'h3'
import jwt from 'jsonwebtoken'

export default defineEventHandler(async (event: H3Event) => {
  const body = await readBody(event)
  // валидация credentials...
  const token = jwt.sign({ userId: user.id }, process.env.JWT_SECRET!, {
    expiresIn: '7d'
  })
  setCookie(event, 'auth_token', token, {
    httpOnly: true,
    secure: true,
    sameSite: 'lax',
    maxAge: 60 * 60 * 24 * 7
  })
  return { ok: true }
})
// server/middleware/auth.ts
import jwt from 'jsonwebtoken'

export default defineEventHandler((event) => {
  const token = getCookie(event, 'auth_token')
  if (token) {
    try {
      event.context.user = jwt.verify(token, process.env.JWT_SECRET!)
    } catch {
      deleteCookie(event, 'auth_token')
    }
  }
})

На клиенте защищённые страницы используют route middleware:

// middleware/protected.ts
export default defineNuxtRouteMiddleware(() => {
  const user = useUserStore()
  if (!user.isLoggedIn) {
    return navigateTo('/login')
  }
})

Альтернатива: nuxt-oidc-auth

Модуль nuxt-oidc-auth ориентирован на OpenID Connect и подходит, когда нужна полноценная OIDC-интеграция с корпоративными провайдерами (Keycloak, Azure AD). Он хранит сессию на сервере в зашифрованном cookie и не требует базы данных.

Подводные камни

  • AUTH_SECRET не задан — Auth.js молча работает в dev, но падает в production; всегда задавайте переменную явно.
  • globalAppMiddleware: true блокирует все страницы включая публичные — нужно явно помечать их через definePageMeta({ auth: false }).
  • Гидратация SSR/клиент — если состояние auth получено на сервере через useAuth(), а клиент обращается к нему до того как хранилище инициализировано, возникает рассинхронизация; используйте status === 'loading' для условного рендеринга.
  • Refresh-токены в режиме local не обновляются автоматически — нужно самостоятельно реализовывать перехватчик с повтором запроса.
  • CSRF-защита отсутствует в ручной реализации — при использовании cookie-аутентификации без samesite=strict необходимо добавлять CSRF-токен.
  • useCookie на сервере при SSR возвращает cookie из заголовков запроса, а не из document.cookie — не перепутайте контексты выполнения.
  • Хранение секретов — не кладите JWT_SECRET в .env файл, коммитящийся в репозиторий; используйте secrets менеджер.
  • Режим SPA — если ssr: false, серверная защита через middleware недоступна; вся защита только на клиенте, что небезопасно для чувствительных данных.

Частые вопросы на собеседовании

  • В чём разница между composable'ами useAsyncData и useFetch?
  • Что такое useState() в Nuxt и чем он отличается от Vue ref()?
  • Что такое серверный движок Nitro в Nuxt 3 и что он обеспечивает?
  • Что такое Nuxt и какие проблемы он решает по сравнению с обычным Vue.js-приложением?

Типичные ошибки

  • Путать Nuxt authentication с похожим API из соседнего фреймворка.
  • Не объяснять, где код выполняется: сервер, клиент, build step или runtime.
  • Игнорировать влияние на hydration, cache, bundle size или безопасность.

Что проверяет интервьюер

  • Точно объясняет назначение механизма «Nuxt authentication».
  • Показывает корректный минимальный пример без выдуманных API.
  • Называет ограничения, failure modes и production-компромиссы.

Как вы знаете этот вопрос?

Проверить себя по теме Nuxt →

Источники

  • https://nuxt.com/docs/3.x/guide/directory-structure/server
  • https://nuxt.com/docs/3.x/guide/directory-structure/middleware
  • https://nuxt.com/docs/3.x/api/composables/use-state
←Предыдущий вопросКак работает файловая маршрутизация (file-based routing) в Nuxt? Как создавать динамические и catch-all маршруты?Следующий вопрос→Что такое `nuxt.config.ts` и какие параметры конфигурации наиболее важны?

Связанные темы

Nuxtauthenticationsecurity-boundaries