Інтеграція 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, який поєднує безпарольну аутентифікацію електронної пошти зі створенням некастодіального гаманця. Користувач вводить email, отримує магічне посилання, торкається його — і миттєво авторизується із готовою адресою Ethereum. Без паролів, без seed.

Механіка Magic SDK

Magic використовує власні HSM (Hardware Security Modules) для зберігання частин приватного ключа. Повний ключ збирається лише на пристрої користувача в ізольованому контексті після верифікації електронної пошти. Ця схема називається Delegated Key Management.

На відміну від Privy та Web3Auth, Magic не підтримує відновлення через інший пристрій без додаткових методів (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 додайте Associated Domains у Info.plist: applinks:your-app.link. На сервері — файл apple-app-site-association. Magic Dashboard дозволяє налаштувати користувацький URL переспрямування.

На Android — Intent Filter з autoVerify="true" та .well-known/assetlinks.json на домені. Без цього магічне посилання відкривається в браузері замість додатку.

Часта проблема: посилання відкривається в 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 — користувач бачить деталі та підтверджує. Без Enterprise-плану ви не можете налаштувати цей UI.

Інтеграція Magic Link + налаштування Deep Links + підписування транзакцій — 1–2 тижні. Вартість розраховується індивідуально.