Интеграция Magic Link для аутентификации в мобильном криптоприложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Интеграция Magic Link для аутентификации в мобильном криптоприложении
Средний
от 1 дня до 3 дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Интеграция Magic Link для аутентификации в мобильном криптоприложении

Magic (magic.link) — SDK, который совмещает passwordless email-аутентификацию с созданием некастодиального кошелька. Пользователь вводит email, получает magic link, тапает — и сразу авторизован с готовым Ethereum-адресом. Никаких паролей, никакого seed.

Механика Magic SDK

Magic использует собственные HSM (Hardware Security Modules) для хранения частей приватного ключа. Полный ключ собирается только на устройстве пользователя в изолированном контексте после прохождения email-верификации. Схема называется Delegated Key Management.

В отличие от Privy и Web3Auth, Magic не поддерживает recovery через другое устройство без дополнительных методов (MFA). Если пользователь теряет доступ к email — восстановление через поддержку Magic.

Интеграция в React Native

npm install magic-sdk @magic-ext/react-native

Magic SDK на React Native работает через встроенный WebView-компонент (magic-sdk). Нужно убедиться, что react-native-webview установлен и настроен.

import { Magic } from "@magic-sdk/react-native";

const magic = new Magic("pk_live_YOUR_PUBLISHABLE_KEY", {
  network: {
    rpcUrl: "https://mainnet.infura.io/v3/YOUR_KEY",
    chainId: 1,
  },
});

// Экспортируем провайдер для использования с ethers.js
export const magicProvider = new ethers.BrowserProvider(magic.rpcProvider);
// Логин через email
const loginWithMagic = async (email: string) => {
  try {
    await magic.auth.loginWithMagicLink({
      email,
      showUI: true, // Magic показывает свой экран ожидания
    });
    const userInfo = await magic.user.getInfo();
    // userInfo.publicAddress — адрес кошелька
    await saveUserSession(userInfo);
  } catch (e) {
    if (e instanceof RPCError && e.code === RPCErrorCode.MagicLinkExpired) {
      showError("Ссылка истекла. Запросите новую.");
    }
  }
};

Deep Link для magic link на мобильном

Пользователь получает email, тапает ссылку — браузер должен вернуть управление в приложение. Для этого нужен Universal Link (iOS) или App Link (Android).

На iOS в Info.plist добавляем Associated Domains: applinks:your-app.link. На сервере — файл apple-app-site-association. Magic Dashboard позволяет настроить кастомный redirect URL.

На Android — Intent Filter с autoVerify="true" и .well-known/assetlinks.json на домене. Без этого magic link откроется в браузере, а не в приложении.

Проблема, которая встречается часто: ссылка открывается в Chrome Custom Tab вместо приложения на Android 12+. Причина — изменения в политике App Links в Android 12. Решение: явно указывать android:pathPattern в Intent Filter и проверять верификацию через adb shell am start -W -a android.intent.action.VIEW.

Подписание транзакций

const signTransaction = async (to: string, valueEth: string) => {
  const signer = await magicProvider.getSigner();
  const tx = await signer.sendTransaction({
    to,
    value: ethers.parseEther(valueEth),
    gasLimit: 21000,
  });
  return tx.hash;
};

Magic автоматически вызывает UI подтверждения транзакции через свой WebView — пользователь видит детали и подтверждает. Кастомизировать этот UI нельзя без Enterprise-плана.

Интеграция Magic Link + настройка Deep Links + подписание транзакций — 1-2 недели. Стоимость рассчитывается индивидуально.