На дворе 2026 год. Нейросети пишут за нас тесты, холодильники сами заказывают продукты, а пользователи... пользователи всё так же ненавидят придумывать пароли.
Если ваш продукт сегодня встречает юзера формой Email + Пароль + Повторите пароль, вы теряете конверсию. Никто не хочет запоминать очередной набор символов для «очередного сервиса». Все хотят одну кнопку: «Войти как...».
В этой статье разберем джентльменский набор авторизации для 2026 года: что ставить для рунета, что для мира, и как это реализовать технически на примере Яндекс и Google.
Для аудитории РФ и СНГ🪆
1. Яндекс ID. Это база. У каждого есть почта, подписка Плюс или аккаунт в Такси. Это самый «бесшовный» способ входа для рунета.
2. VK ID. Социальный граф никуда не делся. Если ваш проект подразумевает шеринг контен��а или социальное взаимодействие — лучше добавить.
3. Сбер ID. Важный нюанс: это стандарт де‑факто для юрлиц и финтех‑сервисов. Если вы делаете B2B продукт или магазин с серьезным чеком, кнопка «Войти через Сбер» вызывает у пользователя подсознательное доверие (и часто подтягивает верифицированные данные, что удобно для договоров).
Для зарубежной аудитории
* Google. Это паспорт интернета. Если вы целитесь на Product Hunt или западный рынок, без Google Auth ваш сервис выглядит сломанным.
Как это работает под капотом?
В 2026 году протокол OAuth 2.0 всё еще жив и здоров, а принцип «не давай пароль сайту, дай ему токен» работает идеально.
У Яндекс появился виджет(Yandex Instant Login), который сразу показывает данные пользователю и предлагает авторизоваться на сайте, на мой взгляд — это очень удобно и повышает конверсию.

Давайте посмотрим, как подключить Яндекс ID, опираясь на актуальную документацию.
Шаг 0: Регистрация приложения
Идем в консоль разработчика (Yandex OAuth). Создаем приложение.
Шаг 1. Название и иконка
Назовите приложение так, как оно будет отображаться у пользователя, загрузите логотип — это повышает доверие.

Шаг 2. Платформа и Redirect URI
Выберите «Веб‑сервисы». В поле Redirect URI укажите адрес, куда Яндекс вернет пользователя после входа.

Шаг 3. Доступы
В разделе «Доступ к данным» выберите необходимые права, например набор для авторизации:
* login:email — получить адрес почты
* login:info — получить имя, фамилию и пол
* login:avatar — получить аватарку

Шаг 4. Проверим

Нам выдадут два ключа, которые нельзя светить на фронтенде (кроме ID):
* Client ID (идентификатор приложения)
* Client Secret (секретный ключ, храним только на бэкенде!)
Шаг 5: Мгновенный вход
Вместо простой ссылки мы используем официальный SDK Яндекса, который показывает нативный виджет с аватаром пользователя. Это повышает конверсию, так как пользователь видит свой аккаунт сразу.
// components/YandexInstantLogin.tsx 'use client'; import { useEffect } from 'react'; export function YandexInstantLogin() { useEffect(() => { // Подключаем SDK Яндекса const script = document.createElement('script'); script.src = 'https://yastatic.net/s3/passport-sdk/autofill/v1/sdk-suggest-with-polyfills-latest.js'; document.body.appendChild(script); script.onload = () => { // @ts-ignore window.YaAuthSuggest.init({ client_id: 'ВАШ_CLIENT_ID', response_type: 'token', // Получаем токен сразу (Implicit Flow) redirect_uri: 'https://mcpcat.ru/auth/yandex-callback' }, window.location.origin, { view: 'suggest', buttonSize: 'm', buttonView: 'main' }) .then(({ handler }: any) => handler()) .catch((error: any) => console.log('Yandex Auth Error:', error)); }; }, []); return <div id="ya-auth-suggest" />; }
Шаг 6: Обработка токена
Яндекс возвращает токен на страницу /auth/yandex-callback в URL hash. Мы перехватываем его и отправляем на наш сервер для верификации.
// app/auth/yandex-callback/page.tsx useEffect(() => { const hash = window.location.hash; const params = new URLSearchParams(hash.replace('#', '?')); const accessToken = params.get('access_token'); if (accessToken) { // Отправляем токен на бэкенд fetch('/api/auth/yandex', { method: 'POST', body: JSON.stringify({ token: accessToken }) }).then(res => { if (res.ok) window.location.href = '/'; }); } }, []);
Шаг 7: Верификация и создание пользователя (Python Backend)
На бэкенде мы не верим клиенту на слово. Мы берем полученный токен и сами идем в Яндекс, чтобы проверить его валидность и получить данные пользователя.
# backend/routes/auth.py import httpx from fastapi import APIRouter, HTTPException from pydantic import BaseModel router = APIRouter() class YandexAuthRequest(BaseModel): token: str @router.post("/auth/yandex") async def yandex_auth(request: YandexAuthRequest): # 1. Проверяем токен в Яндексе async with httpx.AsyncClient() as client: response = await client.get( "https://login.yandex.ru/info?format=json", headers={"Authorization": f"OAuth {request.token}"} ) if response.status_code != 200: raise HTTPException(status_code=401, detail="Invalid token") yandex_user = response.json() # 2. Получаем данные user_data = { "provider": "yandex", "provider_user_id": yandex_user["id"], "email": yandex_user.get("default_email"), "name": yandex_user.get("real_name"), "image": f"https://avatars.yandex.net/get-yapic/{yandex_user['default_avatar_id']}/islands-200" } # 3. Ищем пользователя в БД или создаем нового # (логика сохранения в базу данных) user = get_or_create_user(user_data) return {"status": "success", "user": user}
А что с Google?
Принцип тот же, меняются только адреса и параметры.
Google Console: [Google Cloud Console](https://console.cloud.google.com/apis/credentials)
Scopes: openid email profile
Endpoints:
* Auth: https://accounts.google.com/o/oauth2/v2/auth
* Token: https://oauth2.googleapis.com/token
* UserInfo: https://www.googleapis.com/oauth2/v3/userinfo
Код на Python будет идентичным, просто поменяйте URL и ключи.
Архитектура «Без паролей»
В 2026 году идеальная схема базы данных пользователей выглядит так, чтобы поддерживать множество провайдеров.
# SQLAlchemy models (пример) class User(Base): __tablename__ = "users" id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4())) email = Column(String, unique=True, index=True) name = Column(String) avatar_url = Column(String) created_at = Column(DateTime, default=datetime.utcnow) # Связь с OAuth аккаунтами oauth_accounts = relationship("OAuthAccount", back_populates="user") class OAuthAccount(Base): __tablename__ = "oauth_accounts" id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4())) user_id = Column(String, ForeignKey("users.id")) provider = Column(String) # "yandex", "google", "vk" provider_user_id = Column(String) # ID пользователя внутри провайдера (sub, id) user = relationship("User", back_populates="oauth_accounts")
Такая структура позволяет одному пользователю привязать и Яндекс, и Google, и VK к одному аккаунту на вашем сайте.
Персональные данные
Согласно ФЗ-152, персональные данные (ПД) — это любая информация, относящаяся к прямо или косвенно определенному или определяемому физическому лицу.
Токен (ID) как ПД: Если у вас в базе есть только
user_idиaccess_token, и вы никак не можете узнать, кто это (у вас нет ФИО, телефона, email или IP, привязанного к личности), то это обезличенные данные. Сами по себе они не позволяют идентифицировать человека.Токен как «ключ» к ПД: Если вы используете OAuth (Яндекс, Google, VK), вы получаете токен. Если по этому токену вы запрашиваете у провайдера
emailилиимя, то как только эти данные попадают в вашу базу, вы становитесь оператором ПД.
Чтобы уйти от рисков стать ОПД(оператором персональных данных), нужно придерживаться стратегии минимизации данных:
Не запрашивайте лишние Scopes: При авторизации через Яндекс/Google запрашивайте только минимальный ID (субъект), но не запрашивайте
email,full_nameилиavatar, если они не критичны для работы сервиса.Хеширование внешних ID: Вместо того чтобы хранить «родной» ID пользователя от Яндекса, сохраняйте его хеш (например,
sha256(external_id + salt)). Это создаст дополнительный слой анонимизации: даже если база утечет, сопоставить её с пользователями Яндекса будет крайне сложно.Срок жизни: Храните токены ровно столько, сколько нужно для работы сессии. Регулярно удаляйте токены неактивных пользователей.
Таким образом авторизация через Google и Яндекс при правильном подходе позволяет не хранить персональные данные пользователя.
Итого
Не мучайте пользователей формами регистрации.
Делаете сервис для РФ? Яндекс ID + VK ID
Работаете с юрлицами? Добавьте Сбер ID
Выходите на мир? Google Auth.
Это гигиенический минимум UX в 2026 году.
Всё описанное в статье я применил сегодня на моём сайте Каталог MCP—серверов, скоро он позволит любому агенту автоматически искать и подключать любой mcp‑сервер «на лету», чтобы приблизится к AGI не за счет мозгов, а за счет доступных инструментов.
Для тех, кому интересна разработка AI‑стартапов, вступайте в наш клуб основателей стартапов AI Founders
Для тех кто дочитал до конца, поздравляю с праздником, с Днём защитника отечества, господа IT-шники!
