İçeriğe atla
supastack
Dokümanlara göz atın
MobilExpo

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /tr/docs/mobile/passkeys.md (or send Accept: text/markdown).

Passkey ile oturum açma

Oturumu uygulamaya geri döndüren bir tarayıcı aktarımıyla parolasız oturum açma.

Aktarım nasıl çalışır

Passkey ile oturum açma uygulamada başlar ve sistem tarayıcısında biter. Uygulama, WebBrowser.openAuthSessionAsync aracılığıyla {API URL}/auth?mobile_callback=<deep link> adresini açar; web sayfası herhangi bir oturum açma yöntemini tamamladıktan sonra, oturum çerezini ve bir state nonce'u taşıyarak <scheme>://auth/callback adresine geri yönlendiren GET /api/auth/mobile-handoff'u çağırır.

Her deneme, değişmeden gidip gelmesi gereken yeni bir nonce üretir — eşleşmeyen bir state parametresi stateMismatch olarak reddedilir; böylece eski veya sahte bir geri çağrı oturum enjekte edemez. Dönen çerez, Better Auth Expo istemcisinin kullandığı aynı SecureStore kavanozuna (supastack.auth_cookie) birleştirilir, ardından oturum deposu bilgilendirilir ve oturum açılmış uygulama işlenir.

Kapatılan bir tarayıcı sayfası, hata yerine sessiz bir cancelled sonucuna çözümlenir; bu durumda oturum açma ekranını değiştirmeden bırakın.

# apps/mobile/.env.local
EXPO_PUBLIC_APP_SCHEME=supastack

# apps/web/.env.local — server side
AUTH_PASSKEY_ENABLED=true
MOBILE_ALLOWED_ORIGINS=

İzin listesini iki tarafta da aynı tutun

İki taraf da geri çağrı hedefini doğrular: uygulama yalnızca <scheme>://auth ile yapılandırılmış üretim kaynaklarını kabul eder, sunucu ise EXPO_PUBLIC_APP_SCHEME ve MOBILE_ALLOWED_ORIGINS'ten oluşturulan aynı listeyi denetler. Kimlik bilgisi taşıyan, bilinmeyen şemalar içeren veya benzer görünümlü sonekler taşıyan geri çağrılar, herhangi bir çerez hareket etmeden reddedilir.

Üretimde MOBILE_ALLOWED_ORIGINS zorunludur ve yerel olmayan tam HTTPS kaynaklarını listelemelidir — joker karakterler kabul edilmez. Uygulama paketlenmiş olarak dağıtılırken sunucu ortamını istek başına okur; bu nedenle bir şema veya kaynak değişikliği hem yeni bir uygulama derlemesi hem de bir sunucu dağıtımı gerektirir. Yalnızca bir tarafı değiştirmek, aktarımların kapalı başarısız olmasına yol açar.

Diğer parolasız yöntemler

Aynı oturum açma ekranı, e-posta tek kullanımlık kodları (önce requestEmailOtp ardından verifyEmailOtp) ve callbackURL ile signIn.social üzerinden Apple veya Google sosyal oturum açma sunar. Passkey'ler, sunucuda AUTH_PASSKEY_ENABLED=true olduğunda görünür; bir hesabın passkey ve iki faktörlü kurulumu yine web uygulamasında Ayarlar → Güvenlik altında bulunur.

Doğrulama ve sorun giderme

Hedeflenen derlemede soğuk başlangıç geri çağrısını, çalışan uygulamaya dönüşü, kapatılan tarayıcı sayfasını ve süresi dolmuş oturumu uygulayın. Tipli hatalar — passkeyUnavailable, browserFailed, untrustedCallback, missingCookie, malformedCookie, cookieStoreFailed — her biri farklı bir kırılmayı tanımlar; stateMismatch, nonce'un değişmeden geri dönmediği ve denemenin doğru şekilde reddedildiği anlamına gelir.

Her aktarım reddediliyorsa, dağıtılan derlemedeki EXPO_PUBLIC_APP_SCHEME'yi sunucunun şeması ve MOBILE_ALLOWED_ORIGINS ile karşılaştırın — bir taraf diğeri olmadan yeniden dağıtıldığında bu ikili uyumsuzlaşır.

Sık sorulan sorular

14 soru

supastack nedir?

supastack, YZ destekli SaaS ürünleri oluşturmak için modüler bir temeldir. Ortak altyapıyı bir araya getirir, böylece ürüne özgü özelliklere odaklanabilirsiniz.

Web ve mobil destekliyor mu?

Evet. supastack, web ve mobil deneyimler için başlangıç noktası olarak Next.js ve Expo uygulamaları içerir.

Hangi kimlik doğrulama dahil?

Better Auth; e-posta/parola, OTP ve sosyal girişi kapsar. Kişisel çalışma alanları hesapla birlikte sağlanır, böylece ürün kayıtları ilk günden itibaren sınırlı kalır.

YZ'yi nasıl destekliyor?

supastack; yapılandırılabilir çok sağlayıcılı YZ, kullanım takibi, bütçeler ve şifreli kendi-anahtarını-getir desteği içerir.

Abonelikler nasıl ele alınıyor?

Kit üzerine kurulu ürünler için Stripe faturalama, abonelikler ve yetkilendirmeler ücretli erişim temelini oluşturur. Sağlayıcı gizli anahtarları yalnızca sunucuda kalır.

Ürüne özgü kodum nerede durur?

Ürüne özgü özellikler ayrı bir kod tabanında kalırken ürün, supastack'in temel modüllerini yapılandırır ve entegre eder.

supastack fiyatlandırması nasıl çalışır?

Kit, ömür boyu güncellemeli tek seferlik bir satın alımdır: 249 $'a Single Stack — Next.js (Web), Expo (iOS ve Android) veya Tauri (macOS ve Windows Masaüstü) depolarından biri —, 398 $'a istediğiniz iki depoyla Dual Stack ya da üç deponun tamamını ve tam monorepo'yu içeren 399 $'lık Full Bundle; ek geliştirici koltuğu başına 75 $. Kit aboneliği yok. Bu sitedeki ödeme, lisans anahtarınızı e-postayla teslim eder ve depo erişimi GitHub davetiyle sağlanır.

Çalışma alanları verilerimi nasıl sınırlar?

Kullanıcıya ait kayıtlar workspaceId ile sınırlanır. Kimlik, yetkilendirmeler, YZ kullanımı, faturalama olayları ve denetim kayıtları kişisel çalışma alanı sınırının içinde kalır.

Arka plan işleri nasıl çalışır?

Trigger.dev açık iş çalışma zamanıdır. JobRunner sözleşmesi yalnızca enqueue, status ve cancel vaat eder — iş akışı semantiği Trigger.dev'e özgü ve açık kalır.

E-posta, tanıtım yazılarından nasıl farklı?

İşlemsel e-posta, tamamlanma bildirimleri gibi ürün iş akışlarını kapsar. Soğuk tanıtım ve kampanyalar, bu kitin e-posta modülünün dışında kalan ürün konularıdır.

Mobil satın almalar nasıl çalışır?

Mobil uygulama RevenueCat ile yerel satın alma ve geri yükleme sunar; erişimi sunucunuz doğrular. Yayınlamadan önce mağaza hesaplarını yapılandırın ve cihaz testlerini tamamlayın. Web faturalandırması ayrı kalır.

YZ sağlayıcı anahtarları nerede durur?

Kendi-anahtarını-getir kimlik bilgileri şifrelidir ve yalnızca sunucuda kalır. Anahtarlar günlüklerden gizlenir; kullanım ve bütçeler çalışma alanı düzeyinde görünür kalır.

Ödeme hangi ödeme yöntemlerini kabul ediyor?

Stripe tarafından barındırılan ödeme sayfası kartları kabul eder; cüzdanlar Stripe hesabında etkinleştirildiğinde Alipay ve WeChat Pay de sunabilir — Çin'deki alıcılar için kullanışlı. Cüzdan yetkilendirmeleri eşzamansız onaylanır; ödeme tamamlanır tamamlanmaz lisans sayfası güncellenir.

Geri ödeme alabilir miyim?

Depoya erişim kazandıktan sonra supastack sonsuza kadar sizin olur, bu nedenle geri ödeme yapılamaz. Ancak içiniz rahat olsun: kendiniz veya müşterileriniz için sınırsız sayıda ürün geliştirip yayınlamak üzere ömür boyu güncellemeler içeren eksiksiz kaynak koduna sahip olursunuz. Yalnızca kodu yeniden satamaz veya depoyu bir başlangıç kiti ya da şablon olarak yeniden dağıtamazsınız.

TR
Tema