Besplatno CC0 Open Source

Genesis SDK — Integracija

Dodaj Genesis Identity na svoju web ili mobilnu aplikaciju u 5 minuta. Ed25519 kriptografski login bez lozinki, bez centralnog servera.

Brzi start

Uključi SDK script tag na svoju stranicu:

HTML
<!-- Genesis Auth SDK v2.0 — CC0 licence -->
<script src="https://genesislogin.online/genesis-auth.js"></script>

Pokreni popup login:

JavaScript
// Popup login (preporučeno — radi na desktop i mobile)
const session = await GenesisAuth.login({
  origin:   'https://genesislogin.online',  // popup host
  callback: (result) => {
    console.log('Prijavljen!', result.weise3_id);
    // result = { session_token, weise3_id, display_name }
  }
});

Ili inline passphrase login (bez popupa):

JavaScript
// Inline — passphrase ostaje u browseru, nikad ne odlazi na server
const session = await GenesisAuth.loginDirect(
  passphrase,     // npr. "moja tajna fraza"
  'Ivan Kovač'    // display name (optional)
);
// session = { session_token, weise3_id, display_name, tier }

Verifikacija tokena na backendu

Provjeri session_token na svom serveru — pozovi Genesis API:

Python (requests)
import requests

def verify_genesis_token(session_token: str) -> dict:
    r = requests.get(
        "https://genesis.limit-connect.com/api/v1/genesis/auth/me",
        headers={"Authorization": f"Bearer {session_token}"}
    )
    r.raise_for_status()
    data = r.json()
    # data = { weise3_id, display_name, tier, auth_method, ... }
    return data  # tier "noble" = Ed25519, "native" = biometrija
Node.js (fetch)
async function verifyGenesisToken(sessionToken) {
  const r = await fetch(
    'https://genesis.limit-connect.com/api/v1/genesis/auth/me',
    { headers: { 'Authorization': `Bearer ${sessionToken}` } }
  );
  if (!r.ok) throw new Error('Invalid token');
  return r.json();  // { weise3_id, tier, auth_method, ... }
}

Biometrijska autentikacija (GBS L2)

Nakon passphrase loginac, registriraj uređaj za 1-dodir prijavu (Face ID / Fingerprint):

// Registracija biometrijskog uređaja (jednom po uređaju)
const rez = await GenesisAuth.biometric.registerDevice(session.session_token);
// rez.recovery_cigla — 12 Genesis riječi — PRIKAŽI JEDANPUT korisniku!

// Svaki sljedeći posjet — biom login (bez passphrasse)
const session = await GenesisAuth.biometric.login(genesis_id);

Mobile / redirect flow

Na mobilnim uređajima popup ne radi pouzdano — SDK automatski prebacuje na redirect:

// Isti poziv — SDK automatski detektira mobile i prebacuje na redirect
GenesisAuth.login({ origin: 'https://genesislogin.online', returnUrl: 'https://tvoja-app.com/callback' });

// Na callback stranici — prihvati sesiju iz URL parametara
GenesisAuth.handleMobileReturn((session) => {
  console.log('Mobile login!', session.weise3_id);
});

API Reference

Svi endpointi na genesis.limit-connect.com/api/v1

Auth endpointi
POST /genesis/auth/registracija Registrira Ed25519 public key (idempotentno)
POST /genesis/auth/challenge Dohvati challenge za potpis (TTL 300s)
POST /genesis/auth/verify Verificiraj potpis → session_token + weise3_id
GET /genesis/auth/me Dohvati profil sesije (Authorization: Bearer)
POST /genesis/auth/odjava Invalidira token na serveru
Biometrija (WebAuthn)
POST /genesis/auth/biom/register/options Dohvati WebAuthn opcije za registraciju
POST /genesis/auth/biom/register/complete Završi WebAuthn registraciju → recovery_cigla
POST /genesis/auth/biom/auth/options Dohvati challenge za biom auth
POST /genesis/auth/biom/auth/verify Verificiraj biom credential → session_token (tier: native)
GET /genesis/auth/biom/devices Lista registriranih uređaja (Auth required)
DEL /genesis/auth/biom/devices/{device_id} Opozovi uređaj — permanentno

Session objekt

{
  "session_token":   "glr_...",          // Bearer token (TTL: noble=2h, native=30d)
  "weise3_id":        "W3:sha3:...",       // vječni, deterministički identifikator
  "display_name":     "Ivan K.",
  "tier":             "noble",             // noble | native | untrusted
  "auth_method":      "noble",             // noble (Ed25519) | native (WebAuthn) | device (fallback)
  "public_key_hex":   "a1b2c3...",         // 64-znak hex Ed25519 pubkey
  "tier_ttl":         7200                 // sekundi do expiry
}

Live demo

Isprobaj Genesis popup login odmah:

Django integracija (Fenix sustavi)

Instaliran je genesis_connect Django app koji automatski integrira login:

# settings.py
INSTALLED_APPS = ['genesis_connect', ...]

# urls.py
path('genesis/', include('genesis_connect.urls'))

# Template (bilo gdje)
{% load genesis_tags %}
{% genesis_login_button mode="popup" %}  {# popup mode #}
{% genesis_login_button mode="inline" %} {# inline passphrase form #}

# View — provjera sesije
from genesis_connect.decorators import genesis_required
@genesis_required
def moja_view(request):
    weise3_id = request.genesis_session['weise3_id']
    tier      = request.genesis_session['tier']