İçeriğe geç
GlobalTrustIDdocs

React Native

Mobil uygulamanıza cihaz üstü GlobalTrustID girişi ekleyin — QR yok, WebView yok.

@globaltrustid/rn-gti, React Native uygulamanıza "GlobalTrustID ile giriş" ekler. Kullanıcı, telefonundaki GlobalTrustID uygulamasında tek dokunuşla onaylar ve uygulamanıza döner.

Terminal
npm install @globaltrustid/rn-gti

Web akışından farkı#

OAuth Uygulamaları sayfasındaki akış tarayıcı içindir: kullanıcı ekranda bir QR görür ve telefonuyla okutur. Aynı telefondaki bir mobil uygulamada okutacak bir QR yoktur — uygulamanız GlobalTrustID uygulamasını doğrudan çağırır.

Web (OAuth)Mobil (cihaz üstü)
Kullanıcı ne yaparEkrandaki QR'ı telefonuyla okuturTek dokunuşla onaylar
İstemci tipiTarayıcı istemcisiCihaz üstü işaretli istemci
Yönlendirme adresihttps://...App Link ya da ters-DNS şema
Sır (client secret)OlabilirYok — koruma PKCE'de

Protokol aynıdır: OpenID Connect, authorization code + PKCE.

Hızlı bakış#

TS
import 'react-native-get-random-values';
import { GlobalTrustID } from '@globaltrustid/rn-gti';

const gti = new GlobalTrustID({
  clientId: 'gtid_XXXXXXXXXXXX',
  redirectUri: 'com.sirketiniz.uygulama://gti',
  scope: ['identity.first_name', 'identity.last_name', 'email'],
});

const tokens = await gti.signIn();
const user = await gti.getUserInfo(tokens.accessToken);

signIn() GlobalTrustID uygulamasını açar, onayı bekler ve token'larla döner.

Kurulum adımları#

  1. İstemcinizi kaydedin. Panel → Entegrasyonlar → OAuth Uygulamaları → Cihaz üstü giriş kutusunu işaretleyin. Bu kutu işaretliyken yönlendirme adresi olarak com.sirketiniz.uygulama://gti gibi ters-DNS bir şema ya da http://127.0.0.1:PORT/... loopback adresi de kabul edilir.
  2. Dönüş adresini tanıtın. Android AndroidManifest.xml'e bir intent-filter, iOS Info.plist'e CFBundleURLTypes. Android'de launchMode="singleTask" ve onNewIntentsetIntent şart.
  3. Rastgelelik kaynağı ekleyin. react-native-get-random-values kurup giriş dosyanızın en üstünde import edin — PKCE'nin code_verifier değeri tahmin edilemez olmak zorunda.

Her adımın tam hâli, örnek kodlar ve sık karşılaşılan sorunlar deponun README'sinde.

Üretimde adres seçimi#

com.sirketiniz.uygulama:// gibi bir özel şemayı başka bir uygulama da kendine kaydedebilir ve işletim sistemi hangisinin açılacağını garanti etmez. Üretimde, sahibi olduğunuz bir alan adına ait doğrulanmış bir App Link / Universal Link adresi kullanın:

Çıktı
https://sirketiniz.com/gti/callback

Özel şemayı geliştirme ve ilk denemeler için bırakın.

Hangi alanları isteyebilirsiniz#

OAuth Uygulamaları sayfasındaki scope listesinin tamamı geçerlidir. Mobilde özellikle işe yarayan biri:

age.over_18 — kullanıcı doğum tarihini paylaşmadan reşit olduğunu kanıtlar. Yaş sınırı denetleyen bir uygulamada doğum tarihi istemek yerine bunu isteyin; kullanıcı daha azını paylaşır, siz aynı kararı verirsiniz.

Diğer platformlar#

Swift, Kotlin ve Flutter kütüphaneleri hazırlanıyor. O zamana kadar bu akış standart OpenID Connect olduğu için kendi dilinizdeki bir OIDC istemcisiyle de uygulanabilir — dikkat edilecek tek şey, yetkilendirme adresinin /oauth/authorize değil /app/authorize olması ve PKCE'nin zorunlu olmasıdır.