shernova 1.0.5 copy "shernova: ^1.0.5" to clipboard
shernova: ^1.0.5 copied to clipboard

Shernova Phone Verification API — core Flutter SDK (headless).

shernova #

Headless Flutter SDK for the Shernova Phone Verification API.

Quick Start (new Flutter app) #

flutter create my_app
cd my_app

# 1. SDK + optional UI
dart pub add shernova shernova_ui

# 2. Setup CLI (generates config, reads Android app id + SHA256)
dart pub add --dev shernova_cli
dart run shernova_cli setup --pk pk_test_YOUR_KEY --app-id YOUR_APP_UUID

# 3. Register Android package + SHA256 (see below)

Register Android signature #

After setup, register the printed package name and SHA256 in the Shernova dashboard, or via API:

curl -X POST "https://api.shernova.com/v1/apps/YOUR_APP_ID/android-signatures" \
  -H "Authorization: Bearer YOUR_DASHBOARD_JWT" \
  -H "X-Shernova-Organization-Id: YOUR_ORG_ID" \
  -H "Content-Type: application/json" \
  -d '{"package_name":"com.example.my_app","sha256":"YOUR_64_CHAR_SHA256","label":"Debug"}'

Local API during development #

Target --api-url value
Android emulator http://10.0.2.2:3001
Windows / iOS simulator / desktop http://localhost:3001
Production https://api.shernova.com (default)
dart run shernova_cli setup --pk pk_test_... --app-id ... --api-url http://10.0.2.2:3001

Minimal UI integration #

lib/main.dart:

import 'package:flutter/material.dart';
import 'package:shernova/shernova.dart';
import 'package:shernova_ui/shernova_ui.dart';
import 'shernova_config.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Shernova.init(shernovaConfig);
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Verify phone')),
        body: Center(
          child: Builder(
            builder: (context) => FilledButton(
              onPressed: () async {
                await verifyPhone(
                  context: context,
                  phoneNumber: '+201012345678',
                );
              },
              child: const Text('Verify'),
            ),
          ),
        ),
      ),
    );
  }
}

UI language: If your MaterialApp uses Arabic (locale: Locale('ar') or localizationsDelegates), verifyPhone() automatically loads Arabic SDK strings — you do not need locale: 'ar' in ShernovaConfig. For headless use, call Shernova.ensureLocale(Localizations.localeOf(context).languageCode) before Shernova.verify().

Headless (no UI package) #

import 'package:shernova/shernova.dart';
import 'shernova_config.dart';

await Shernova.init(shernovaConfig);

final session = await Shernova.verify(phoneNumber: '+201012345678');

await for (final update in Shernova.watch(session.sessionId)) {
  if (update.status == 'verified') {
    final receipt = await Shernova.getReceipt(session.sessionId);
    break;
  }
}

Sandbox verification #

Sandbox uses pk_test_ / sk_test_ keys. After starting a session (status waiting), complete it with Simulate Ring:

Option A — Dashboard: open the session in your app dashboard and click Simulate Ring.

Option B — API (from your backend or terminal):

curl -X POST "https://api.shernova.com/v1/test/simulate-ring" \
  -H "Authorization: Bearer sk_test_YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"session_id":"SESSION_UUID"}'

The mobile app/SDK keeps polling via Shernova.watch() until status becomes verified, then fetch the receipt JWT with Shernova.getReceipt(sessionId).

Sandbox vs Live #

Key prefix Environment
pk_test_ Sandbox — use /v1/test/simulate-ring to complete sessions
pk_live_ Production

Packages #

Package Purpose
shernova Core headless SDK (this package)
shernova_ui Optional verification screens
shernova_cli Project setup CLI
shernova_android_helpers Optional Android auto-return

Register your Android package name + SHA256 before calling Shernova.init().

0
likes
0
points
454
downloads

Documentation

Documentation

Publisher

unverified uploader

Weekly Downloads

Shernova Phone Verification API — core Flutter SDK (headless).

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, http

More

Packages that depend on shernova