Şifre için e-posta işlemleri gönderirken devam URL'si aracılığıyla durumu iletebilirsiniz. Kullanıcının e-posta adresini sıfırlar veya doğrular. Bu, kullanıcının İşlem tamamlandıktan sonra uygulamaya geri dönebilir. Ek olarak, aşağıdaki durumlarda e-posta işlem bağlantısının doğrudan bir mobil uygulamadan işlenip işlenmeyeceğini web sayfası yerine yüklenir.
Bu, aşağıdaki sık karşılaşılan senaryolarda son derece yararlı olabilir:
Henüz giriş yapmamış bir kullanıcı, kullanıcının oturum açmış olması gerekir. Ancak kullanıcı bu içeriği unutmuş olabilir ve dolayısıyla şifre sıfırlama akışını tetikler. Baktığınızda, akışa döndüğünde, kullanıcı uygulamada daha önce göründüğü bölüme geri dönmeyi biraz zorlandık.
Uygulamalar yalnızca doğrulanmış hesaplara erişim sunabilir. Örneğin, Örneğin, bir bültende kullanıcının, e-posta adresini abone olma. Kullanıcı e-posta doğrulama akışından geçer ve uygulamaya geri dönüp aboneliğini tamamlayabilir.
Diğer durumlarda, kullanıcı akışı mobil cihazından başlatmış olabilir. ve doğrulama işleminden sonra mobil uygulama mağazasına geri dönmelerini tarayıcı.
Devam URL'si aracılığıyla durum iletme imkanı, Firebase Auth, kullanıcı deneyimini önemli ölçüde geliştirebilen bir destek sunar.
E-posta işlemlerinde durum/devam URL'si iletme
Devam eden bir URL'yi güvenli bir şekilde iletmek için URL'nin alanının Firebase konsolunda beyaz listeye eklenmiş olmalıdır. Bu işlem, Kimlik Doğrulama bölümünde bu alanı Oturum açma yöntemi sekmesindeki Yetkili alanlar listesinde bu seçeneği göremiyorsanız.
ActionCodeSettings şifre sıfırlama e-postası gönderilirken veya şifre sıfırlama e-postası gönderilirken doğrulama e-postası. İlişkilendirilmiş ActionCodeSettings.Builder ile oluşturulabilir sınıfını temsil eder.
Yöntem | Açıklama |
---|---|
setUrl(String url) |
Farklı anlamları olan bağlantıyı (durum/devam URL'si) ayarlar farklı bağlamlarda görebilirsiniz:
|
setIOSBundleId(String iOSBundleId) |
iOS paket kimliğini ayarlar. Bu işlem, aşağıdaki durumlarda bağlantıyı bir iOS uygulamasında açmaya çalışır: yüklü olmalıdır. iOS uygulamasının Console'a kayıtlı olması gerekir. |
setAndroidPackageName(String androidPackageName, boolean installIfNotAvailable, String minimumVersion) |
Android paketi adını ayarlar. Bu işlem, bağlantıyı
android uygulamasını kontrol edin. installIfNotKullanılabilir, true değerine ayarlanırsa
Cihaz destekliyorsa Android uygulamasının ve uygulamanın yüklenip yüklenmeyeceğini
zaten yüklü değil. minimumVersion belirtilmişse,
ve uygulamanın eski bir sürümü yüklüyse kullanıcı şuraya yönlendirilir:
Play Store'a giderek uygulamayı yeni sürüme geçirin. Android uygulamasının şurada kayıtlı olması gerekir:
Konsolda. |
setHandleCodeInApp(boolean status) |
E-posta işlemi bağlantısının mobil uygulamada mı yoksa web'de mi açılacağı bağlantısını tıklayın. Varsayılan değer, false (yanlış) değeridir. Doğru değerine ayarlandığında, işlem kodu bağlantısı geçiş bağlantısı veya Android uygulama bağlantısı olarak gönderilecek ve uygulama tarafından geri yüklenir. Yanlış durumda kod, web widget'ı, ardından Devam'da yüklendi. |
setDynamicLinkDomain(String dynamicLinkDomain) |
Geçerli bağlantı için kullanılacak dinamik bağlantı alan adını (veya alt alan adını) ayarlar Firebase Dynamic Links kullanılarak açılacaksa. Çoklu dinamik bağlantı alanları proje başına yapılandırılabilir. Bu alan, birini seçme olanağınız vardır. Herhangi bir alan sağlanmazsa varsayılan olarak kullanılır. |
Aşağıdaki örnekte, bir e-posta doğrulama bağlantısının
Firebase Dynamic Link olarak önce bir mobil uygulamada açılır
(iOS uygulaması com.example.ios
veya Android uygulaması com.example.android
). İlgili içeriği oluşturmak için kullanılan
derin bağlantı, devam URL yükünü içerir
https://www.example.com/?email=user@example.com
.
Kotlin+KTX
val auth = Firebase.auth val user = auth.currentUser!! val url = "http://www.example.com/verify?uid=" + user.uid val actionCodeSettings = ActionCodeSettings.newBuilder() .setUrl(url) .setIOSBundleId("com.example.ios") // The default for this is populated with the current android package name. .setAndroidPackageName("com.example.android", false, null) .build() user.sendEmailVerification(actionCodeSettings) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d(TAG, "Email sent.") } }
Java
FirebaseAuth auth = FirebaseAuth.getInstance(); FirebaseUser user = auth.getCurrentUser(); String url = "http://www.example.com/verify?uid=" + user.getUid(); ActionCodeSettings actionCodeSettings = ActionCodeSettings.newBuilder() .setUrl(url) .setIOSBundleId("com.example.ios") // The default for this is populated with the current android package name. .setAndroidPackageName("com.example.android", false, null) .build(); user.sendEmailVerification(actionCodeSettings) .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Log.d(TAG, "Email sent."); } } });
Firebase Dynamic Links'i yapılandırma
Firebase Auth, bir mobil uygulamada açılması amaçlanan bağlantıdır. Bunu yapmak için özelliği yoksa, Firebase Konsolu'nda Dynamic Links'in yapılandırılması gerekir.
Firebase Dynamic Links'i etkinleştirin:
- Firebase konsolunda Dynamic Links bölümünü açın.
-
Dynamic Links şartlarını henüz kabul etmediyseniz ve Dynamic Links oluşturduysanız kullanıyorsanız bunu hemen yapın.
Daha önce Dynamic Links alanı oluşturduysanız bunu not edin. Dynamic Links alan genellikle aşağıdaki örnekteki gibi görünür:
example.page.link
Apple veya Android uygulamanızı aşağıdaki amaçlarla yapılandırırken bu değere ihtiyacınız olacaktır: izlemesi için bir istek oluşturur.
Android uygulamalarını yapılandırma:
- Bu bağlantıları Android uygulamanızdan işlemeyi planlıyorsanız Android paket adının Firebase Konsolu'nda belirtilmesi gerekir iyi bir fırsattır. Ek olarak, uygulamanın SHA-1 ve SHA-256 sağlayabilirsiniz.
- Ayrıca, derin bağlantı için intent filtresini şurada yapılandırmanız gerekir: AndroidManifest.xml dosyanızı yükleyin.
- Bu konuyla ilgili daha fazla bilgi için Android Dynamic Links ile ilgili talimatları alma.
iOS uygulamalarını yapılandırma:
- Bu bağlantıları iOS uygulamanızdan işlemeyi planlıyorsanız iOS paket kimliğinin Firebase Konsolu'nda belirtilmesi gerekiyor iyi bir fırsattır. Buna ek olarak, App Store Kimliği ve Apple Developer Ekip kimliğinin de belirtilmesi gerekir.
- Ayrıca FDL evrensel bağlantı alanını Uygulama özelliklerinizde ilişkili alan.
- Uygulamanızı iOS 8 ve daha eski sürümlere dağıtmayı planlıyorsanız iOS paket kimliğinizi gelen e-posta adresi için özel şema olarak ayarlamanız gerekir URL'ler.
- Bu konuyla ilgili daha fazla bilgi için iOS Dynamic Links talimatlarını alma.
Web uygulamasındaki e-posta işlemlerini işleme
Bir web'den işlem kodu bağlantısını işlemek isteyip istemediğinizi belirtebilirsiniz
uygulamanız ve ardından başka bir web sayfasına veya mobil uygulamaya yönlendirmesi
ve mobil uygulamanın kullanılabilir olması koşuluyla, başarılı bir şekilde tamamlandıktan sonra.
Bu işlem, setHandleCodeInApp(false)
ActionCodeSettings.Builder
nesnesini tanımlayın. iOS paket kimliği veya Android paket adı gerekli olmasa da bunlar sağlandığında kullanıcıya izin verilir.
e-posta işlem kodu tamamlandığında belirtilen uygulamaya geri yönlendirmek için.
Burada kullanılan web URL'si, e-posta işlem şablonlarında yapılandırılan web URL'sidir. bölümüne ekleyin. Tüm projeler için varsayılan bir temel sağlanır. Referans e-posta işleyicilerini özelleştirme hakkında daha fazla bilgi nasıl özelleştirileceğini anlatacağım.
Bu durumda, continueUrl
sorgu parametresindeki bağlantı
yükü ActionCodeSettings
içinde belirtilen URL
olan bir FDL bağlantısı
nesnesini tanımlayın. Uygulamanızdan gelen bağlantıya müdahale edip bunları işleyebilirsiniz
bağımlı bir dosya yoksa FDL istemci kitaplığını kullanarak
derin bağlantıyı sizin yerinize ayrıştırır.
E-posta doğrulaması gibi e-posta işlemlerini gerçekleştirirken
oobCode
sorgu parametresinin derin bağlantıdan ayrıştırılması ve ardından uygulanması gerekir
applyActionCode
aracılığıyla gönderilen e-posta adresine bir bildirimi gönderin.
Mobil uygulamada e-posta işlemlerini yönetme
Şuradaki işlem kodu bağlantısını kullanmak isteyip istemediğinizi belirtebilirsiniz:
mobil uygulamanız olması gerekir. Android uygulamalarında
ayrıca installIfNotAvailable
boole'si aracılığıyla uygulamanın
Cihaz destekleniyorsa ve yüklü değilse yüklenmelidir.
Bağlantı, mobil cihazları desteklemeyen bir cihazdan tıklanırsa
uygulamada açılırsa bunun yerine bir web sayfasından açılır.
Bu işlem, setHandleCodeInApp(true)
ActionCodeSettings.Builder
nesnesini tanımlayın. Mobil uygulamanın Android paket adı veya iOS paket kimliğinin de belirtilmesi gerekir.
Mobil uygulama olmadığında burada kullanılan yedek web URL'si yapılandırıldı. Varsayılan bir temel hazırlandı sahip olacaksınız. Referans e-posta işleyicilerini özelleştirme hakkında daha fazla bilgi nasıl özelleştirileceğini anlatacağım.
Bu durumda, kullanıcıya gönderilen mobil uygulama bağlantısı bir FDL bağlantısı olacaktır.
yük, sorguyla birlikte Console'da yapılandırılan işlem kodu URL'sidir.
oobCode
, mode
, apiKey
ve continueUrl
parametreleri. İkincisi, kampanya
ActionCodeSettings
nesnesinde belirtilen orijinal URL
. Projeyi
ek herhangi bir ek olmadan uygulamanızdan gelen bağlantıya müdahale edin ve
varsa, web sitesinin derin bağlantısını ayrıştırmak için FDL istemci kitaplığını
siz. İşlem kodu, benzer bir mobil uygulamadan doğrudan uygulanabilir
web akışında nasıl ele alındığına
e-posta işleyicilerini özelleştirme bölümüne göz atın.
E-posta doğrulaması gibi e-posta işlemlerini gerçekleştirirken
oobCode
sorgu parametresinin derin bağlantıdan ayrıştırılması ve ardından uygulanması gerekir
applyActionCode
aracılığıyla gönderilen e-posta adresine bir bildirimi gönderin.