На дворе 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. Название и иконка
Назовите приложение так, как оно будет отображаться у пользователя, загрузите логотип — это повышает доверие.

Шаг 1. Название и иконка
Шаг 1. Название и иконка

Шаг 2. Платформа и Redirect URI

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

Шаг 2. Платформа и Redirect URI
Шаг 2. Платформа и Redirect URI

Шаг 3. Доступы

В разделе «Доступ к данным» выберите необходимые права, например набор для авторизации:

* login:email — получить адрес почты

* login:info — получить имя, фамилию и пол

* login:avatar — получить аватарку

Шаг 3. Доступы
Шаг 3. Доступы

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

Шаг 4. Проверка
Шаг 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 или имя, то как только эти данные попадают в вашу базу, вы становитесь оператором ПД.

Чтобы уйти от рисков стать ОПД(оператором персональных данных), нужно придерживаться стратегии минимизации данных:

  1. Не запрашивайте лишние Scopes: При авторизации через Яндекс/Google запрашивайте только минимальный ID (субъект), но не запрашивайте email, full_name или avatar, если они не критичны для работы сервиса.

  2. Хеширование внешних ID: Вместо того чтобы хранить «родной» ID пользователя от Яндекса, сохраняйте его хеш (например, sha256(external_id + salt)). Это создаст дополнительный слой анонимизации: даже если база утечет, сопоставить её с пользователями Яндекса будет крайне сложно.

  3. Срок жизни: Храните токены ровно столько, сколько нужно для работы сессии. Регулярно удаляйте токены неактивных пользователей.

Таким образом авторизация через Google и Яндекс при правильном подходе позволяет не хранить персональные данные пользователя.

Итого

Не мучайте пользователей формами регистрации.

  • Делаете сервис для РФ? Яндекс ID + VK ID

  • Работаете с юрлицами? Добавьте Сбер ID

  • Выходите на мир? Google Auth.

Это гигиенический минимум UX в 2026 году.

Всё описанное в статье я применил сегодня на моём сайте Каталог MCPсерверов, скоро он позволит любому агенту автоматически искать и подключать любой mcp‑сервер «на лету», чтобы приблизится к AGI не за счет мозгов, а за счет доступных инструментов.

Для тех, кому интересна разработка AI‑стартапов, вступайте в наш клуб основателей стартапов AI Founders

Для тех кто дочитал до конца, поздравляю с праздником, с Днём защитника отечества, господа IT-шники!

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Какие инструменты авторизации вы используете?
93.33%Логин/пароль14
33.33%Google ID5
6.67%Yandex ID1
0%Сбер ID0
6.67%VK ID1
0%Другое(напишу в комментариях)0
13.33%Телефон2
Проголосовали 15 пользователей. Воздержались 2 пользователя.