Parola sıfırlama için e-posta eylemleri gönderirken veya bir kullanıcının e-postasını doğrularken, durumu bir devam URL'si aracılığıyla iletebilirsiniz. Bu, kullanıcıya işlem tamamlandıktan sonra uygulamaya geri dönme olanağı sağlar. Ayrıca, bir web sayfası yerine yüklendiğinde e-posta eylemi bağlantısının doğrudan bir mobil uygulamadan işlenip işlenmediğini belirleyebilirsiniz.
Bu, aşağıdaki yaygın senaryolarda son derece yararlı olabilir:
Şu anda oturum açmamış bir kullanıcı, kullanıcının oturum açmasını gerektiren içeriğe erişmeye çalışıyor olabilir. Ancak, kullanıcı parolasını unutmuş olabilir ve bu nedenle parola sıfırlama akışını tetikleyebilir. Akışın sonunda kullanıcı, uygulamanın erişmeye çalıştığı bölüme geri dönmeyi umuyor.
Bir uygulama yalnızca doğrulanmış hesaplara erişim sunabilir. Örneğin, bir haber bülteni, kullanıcının abone olmadan önce e-postasını doğrulamasını gerektirebilir. Kullanıcı, e-posta doğrulama akışından geçer ve aboneliğini tamamlamak için uygulamaya geri dönmeyi bekler.
Diğer durumlarda, kullanıcı akışı mobil cihazından başlatmış ve doğrulamadan sonra tarayıcı yerine mobil uygulamasına geri dönmesini beklemiş olabilir.
Durumu bir devam URL'si aracılığıyla iletme yeteneğine sahip olmak, Firebase Auth'un sağladığı ve kullanıcı deneyimini önemli ölçüde iyileştirebilen güçlü bir özelliktir.
E-posta işlemlerinde durum/devam URL'sini iletme
Devam URL'sini güvenli bir şekilde iletmek için, URL'nin alan adının Firebase konsolunda Yetkili alan olarak eklenmesi gerekir. Bu, Kimlik Doğrulama bölümünde, bu etki alanı henüz orada değilse, Oturum açma yöntemi sekmesi altındaki Yetkili etki alanları listesine eklenerek yapılır.
Parola sıfırlama e-postası veya doğrulama e-postası gönderilirken bir
firebase.auth.ActionCodeSettings örneğinin sağlanması gerekir. Bu arayüz aşağıdaki parametreleri alır:
|Parametre||Tip||Açıklama|
| ||sicim|
Farklı bağlamlarda farklı anlamlara sahip olan bağlantıyı (dur/devam URL'si) ayarlar:
| ||({bundleId: dize}|tanımsız)||iOS paket kimliğini ayarlar. Bu, yüklüyse, bağlantıyı bir iOS uygulamasında açmaya çalışacaktır. iOS uygulamasının Konsola kaydedilmesi gerekir.|
| ||({packageName: string, installApp:boolean|tanımsız, minimumVersion: string|tanımsız}|tanımsız)|| Android paket adını ayarlar. Bu, yüklüyse bağlantıyı bir Android uygulamasında açmaya çalışacaktır. |
| ||(boolean|tanımsız)||E-posta eylemi bağlantısının önce bir mobil uygulamada mı yoksa bir web bağlantısında mı açılacağı. Varsayılan yanlıştır. True olarak ayarlandığında, eylem kodu bağlantısı Evrensel Bağlantı veya Android Uygulama Bağlantısı olarak gönderilir ve kuruluysa uygulama tarafından açılır. Yanlış durumda, kod önce web widget'ına gönderilir ve ardından devam edildiğinde, yüklüyse uygulamaya yönlendirilir.|
| ||(dize|tanımsız)||Firebase Dynamic Links kullanılarak açılacaksa, geçerli bağlantı için kullanılacak dinamik bağlantı etki alanını (veya alt etki alanını) ayarlar. Proje başına birden çok dinamik bağlantı alanı yapılandırılabildiğinden, bu alan açıkça birini seçme olanağı sağlar. Hiçbiri sağlanmazsa, varsayılan olarak ilk etki alanı kullanılır.|
Aşağıdaki örnek, özel dinamik bağlantı etki alanı
example.page.link (iOS uygulaması
com.example.ios veya Android uygulaması
com.example.android , önceden yüklenmemişse uygulamanın yükleneceği yer ve minimum sürüm
12 ). Derin bağlantı, devam URL yükünü
https://firstname.lastname@example.org içerecektir.
var actionCodeSettings = { url: 'https://www.example.com/?email=' + firebase.auth().currentUser.email, iOS: { bundleId: 'com.example.ios' }, android: { packageName: 'com.example.android', installApp: true, minimumVersion: '12' }, handleCodeInApp: true, // When multiple custom dynamic link domains are defined, specify which // one to use. dynamicLinkDomain: "example.page.link" }; firebase.auth().currentUser.sendEmailVerification(actionCodeSettings) .then(function() { // Verification email sent. }) .catch(function(error) { // Error occurred. Inspect error.code. });
Firebase Dinamik Bağlantılarını Yapılandırma
Firebase Auth, bir mobil uygulamada açılması amaçlanan bir bağlantı gönderirken Firebase Dynamic Links'i kullanır. Bu özelliği kullanmak için Firebase Konsolunda Dinamik Bağlantıların yapılandırılması gerekir.
Firebase Dinamik Bağlantılarını Etkinleştirin:
- Firebase konsolunda , Dinamik Bağlantılar bölümünü açın.
Henüz Dynamic Links şartlarını kabul etmediyseniz ve bir Dynamic Links etki alanı oluşturduysanız, bunu şimdi yapın.
Zaten bir Dinamik Bağlantılar alanı oluşturduysanız, bunu not alın. Bir Dynamic Links etki alanı genellikle aşağıdaki örneğe benzer:
example.page.link
Apple veya Android uygulamanızı gelen bağlantıyı kesecek şekilde yapılandırırken bu değere ihtiyacınız olacak.
Android uygulamalarını yapılandırma:
- Bu bağlantıları Android uygulamanızdan ele almayı planlıyorsanız, Android paketi adının Firebase Konsolu proje ayarlarında belirtilmesi gerekir. Ayrıca başvuru sertifikasının SHA-1 ve SHA-256'sının sağlanması gerekmektedir.
- Ayrıca
AndroidManifest.xmldosyanızdaki derin bağlantı için amaç filtresini yapılandırmanız gerekecektir.
- Bununla ilgili daha fazla bilgi için Android Dinamik Bağlantılarını Alma talimatlarına bakın.
iOS uygulamalarını yapılandırma:
- Bu bağlantıları iOS uygulamanızdan ele almayı planlıyorsanız, iOS paket kimliğinin Firebase Konsolu proje ayarlarında belirtilmesi gerekir. Ayrıca App Store ID ve Apple Developer Team ID de belirtilmelidir.
- Ayrıca FDL evrensel bağlantı etki alanını, uygulama yeteneklerinizde İlişkili Etki Alanı olarak yapılandırmanız gerekecektir.
- Uygulamanızı iOS 8 ve altı sürümlerine dağıtmayı planlıyorsanız, iOS paket kimliğinizi gelen URL'ler için özel bir şema olarak ayarlamanız gerekir.
- Bununla ilgili daha fazla bilgi için iOS Dinamik Bağlantılarını Alma talimatlarına bakın.
Bir web uygulamasında e-posta eylemlerini işleme
Mobil uygulamanın kullanılabilir olması koşuluyla, önce bir web uygulamasından eylem kodu bağlantısını ele almak ve ardından başarılı bir şekilde tamamlandıktan sonra başka bir web sayfasına veya mobil uygulamaya yönlendirmek isteyip istemediğinizi belirtebilirsiniz. Bu,
firebase.auth.ActionCodeSettings nesnesinde
handleCodeInApp öğesini
false olarak ayarlayarak yapılır. Bir iOS paket kimliği veya Android paket adı gerekli olmasa da, bunların sağlanması, kullanıcının e-posta işlem kodu tamamlandığında belirtilen uygulamaya yeniden yönlendirme yapmasına olanak tanır.
Burada kullanılan web URL'si, e-posta eylem şablonları bölümünde yapılandırılandır. Tüm projeler için varsayılan bir tane sağlanır. E-posta eylemi işleyicisinin nasıl özelleştirileceği hakkında daha fazla bilgi edinmek için e-posta işleyicilerini özelleştirmeye bakın.
Bu durumda,
continueUrl sorgu parametresindeki bağlantı, yükü
ActionCodeSettings nesnesinde belirtilen
URL olan bir FDL bağlantısı olacaktır. Uygulamanızdan gelen bağlantıya herhangi bir ek bağımlılık olmadan müdahale edip işleyebilseniz de, derin bağlantıyı sizin için ayrıştırmak için FDL istemci kitaplığını kullanmanızı öneririz.
E-posta doğrulaması gibi e-posta eylemlerini işlerken, değişikliğin geçerli olması, yani e-postanın doğrulanması için
oobCode sorgu parametresindeki eylem kodunun derin bağlantıdan ayrıştırılması ve ardından
applyActionCode aracılığıyla uygulanması gerekir.
Bir mobil uygulamada e-posta işlemlerini işleme
Eylem kodu bağlantısını, yüklü olması koşuluyla, öncelikle mobil uygulamanızda işlemek isteyip istemediğinizi belirtebilirsiniz. Android uygulamaları ile, cihaz destekliyorsa ve halihazırda yüklü değilse, uygulamanın kurulacağını
android.installApp üzerinden belirtme olanağına da sahipsiniz. Bağlantı, mobil uygulamayı desteklemeyen bir cihazdan tıklanırsa, bunun yerine bir web sayfasından açılır. Bu,
firebase.auth.ActionCodeSettings nesnesinde
handleCodeInApp öğesini
true olarak ayarlayarak yapılır. Mobil uygulamanın Android paket adı veya iOS paket kimliğinin de belirtilmesi gerekir.
Kullanılabilir mobil uygulama olmadığında burada kullanılan yedek web URL'si, e-posta eylem şablonları bölümünde yapılandırılan URL'dir. Tüm projeler için varsayılan bir tane sağlanır. E-posta eylemi işleyicisinin nasıl özelleştirileceği hakkında daha fazla bilgi edinmek için e-posta işleyicilerini özelleştirmeye bakın.
Bu durumda, kullanıcıya gönderilen mobil uygulama bağlantısı,
oobCode ,
mode ,
apiKey ve
continueUrl sorgu parametreleriyle Konsolda yapılandırılan, yükü eylem kodu URL'si olan bir FDL bağlantısı olacaktır. İkincisi,
ActionCodeSettings nesnesinde belirtilen orijinal
URL olacaktır. Uygulamanızdan gelen bağlantıya herhangi bir ek bağımlılık olmadan müdahale edip işleyebilseniz de, derin bağlantıyı sizin için ayrıştırmak için FDL istemci kitaplığını kullanmanızı öneririz. Eylem kodu, e-posta işleyicilerini özelleştirme bölümünde açıklanan web akışından nasıl işlendiğine benzer şekilde doğrudan bir mobil uygulamadan uygulanabilir.
E-posta doğrulaması gibi e-posta eylemlerini işlerken, değişikliğin geçerli olması, yani e-postanın doğrulanması için
oobCode sorgu parametresindeki eylem kodunun derin bağlantıdan ayrıştırılması ve ardından
applyActionCode aracılığıyla uygulanması gerekir.