אתה יכול להעביר מצב באמצעות כתובת אתר המשך בעת שליחת פעולות אימייל לאיפוס סיסמה או אימות דוא"ל של משתמש. זה מספק למשתמש את האפשרות לחזור לאפליקציה לאחר השלמת הפעולה. בנוסף, תוכל לציין אם לטפל בקישור פעולת הדוא"ל ישירות מאפליקציה לנייד כשהיא מותקנת במקום מדף אינטרנט.
זה יכול להיות שימושי ביותר בתרחישים הנפוצים הבאים:
ייתכן שמשתמש, שאינו מחובר כעת, מנסה לגשת לתוכן המחייב את המשתמש להיכנס. עם זאת, ייתכן שהמשתמש שכח את הסיסמה שלו ולכן מפעיל את זרימת איפוס הסיסמה. בסוף הזרימה, המשתמש מצפה לחזור לקטע של האפליקציה שאליו ניסו לגשת.
אפליקציה יכולה להציע רק גישה לחשבונות מאומתים. לדוגמה, אפליקציית ניוזלטר עשויה לדרוש מהמשתמש לאמת את הדוא"ל שלו לפני שהוא מנוי. המשתמש יעבור את זרימת אימות הדוא"ל ומצפה שיוחזרו לאפליקציה כדי להשלים את המנוי שלו.
באופן כללי, כאשר משתמש מתחיל איפוס סיסמה או זרימת אימות דואר אלקטרוני באפליקציית Apple, הוא מצפה להשלים את הזרימה בתוך האפליקציה; היכולת להעביר מצב דרך המשך כתובת אתר מאפשרת זאת.
היכולת להעביר מצב באמצעות כתובת URL המשך היא תכונה רבת עוצמה ש-Firebase Auth מספקת ואשר יכולה לשפר משמעותית את חווית המשתמש.
העברת כתובת/כתובת אתר להמשך בפעולות אימייל
כדי להעביר באופן מאובטח כתובת URL המשך, הדומיין של כתובת האתר יצטרך להיות ברשימת ההיתרים במסוף Firebase . זה נעשה בקטע אימות על ידי הוספת דומיין זה לרשימת הדומיינים המורשים תחת הכרטיסייה שיטת כניסה אם הוא עדיין לא שם.
יש לספק מופע של FIRActionCodeSettings
בעת שליחת אימייל לאיפוס סיסמה או דוא"ל אימות. ממשק זה לוקח את הפרמטרים הבאים:
מָהִיר
פָּרָמֶטֶר | סוּג | תיאור |
---|---|---|
URL | חוּט | מגדיר את הקישור (מצב/המשך כתובת URL) שיש לו משמעויות שונות בהקשרים שונים:
|
iOSBundleID | חוּט | מגדיר את מזהה החבילה. זה ינסה לפתוח את הקישור באפליקציית אפל אם היא מותקנת. האפליקציה צריכה להיות רשומה בקונסולה. אם לא מסופק מזהה חבילה, הערך של שדה זה מוגדר למזהה החבילה של החבילה הראשית של האפליקציה. |
androidPackageName | חוּט | מגדיר את שם החבילה של Android. זה ינסה לפתוח את הקישור באפליקציית אנדרואיד אם היא מותקנת. |
androidInstallIfNotAvailable | בול | מציין אם להתקין את אפליקציית Android אם המכשיר תומך בה והאפליקציה עדיין לא מותקנת. אם שדה זה מסופק ללא שם חבילה, תופיע שגיאה המסבירה כי יש לספק את שם החבילה בשילוב עם שדה זה. |
androidMinimumVersion | חוּט | הגרסה המינימלית של האפליקציה שנתמכת בזרימה זו. אם מציינת minimumVersion, ומותקנת גרסה ישנה יותר של האפליקציה, המשתמש מועבר לחנות Play כדי לשדרג את האפליקציה. אפליקציית אנדרואיד צריכה להיות רשומה בקונסולה. |
handleCodeInApp | בול | האם הקישור לפעולת האימייל ייפתח תחילה באפליקציה לנייד או בקישור אינטרנט. ברירת המחדל היא שקר. כאשר הוא מוגדר כ-true, קישור קוד הפעולה יישלח כקישור אוניברסלי או קישור לאפליקציה של Android וייפתח על ידי האפליקציה אם מותקנת. במקרה השקרי, הקוד יישלח תחילה לווידג'ט האינטרנט ולאחר מכן ב-Continue יפנה מחדש לאפליקציה אם מותקנת. |
dynamicLinkDomain | חוּט | מגדיר את תחום הקישור הדינמי (או תת-הדומיין) לשימוש עבור הקישור הנוכחי אם הוא ייפתח באמצעות Firebase Dynamic Links. מכיוון שניתן להגדיר מספר דומיינים של קישורים דינמיים לכל פרויקט, שדה זה מספק את היכולת לבחור אחד במפורש. אם לא מסופק, הדומיין הראשון משמש כברירת מחדל. |
Objective-C
פָּרָמֶטֶר | סוּג | תיאור |
---|---|---|
URL | NSString | מגדיר את הקישור (מצב/המשך כתובת URL) שיש לו משמעויות שונות בהקשרים שונים:
|
iOSBundleID | NSString | מגדיר את מזהה החבילה. זה ינסה לפתוח את הקישור באפליקציית אפל אם היא מותקנת. האפליקציה צריכה להיות רשומה בקונסולה. |
androidPackageName | NSString | מגדיר את שם החבילה של Android. זה ינסה לפתוח את הקישור באפליקציית אנדרואיד אם היא מותקנת. |
androidInstallIfNotAvailable | BOOL | מציין אם להתקין את אפליקציית Android אם המכשיר תומך בה והאפליקציה עדיין לא מותקנת. אם שדה זה מסופק ללא שם חבילה, תופיע שגיאה המסבירה כי יש לספק את שם החבילה בשילוב עם שדה זה. |
androidMinimumVersion | NSString | הגרסה המינימלית של האפליקציה שנתמכת בזרימה זו. אם מציינת minimumVersion, ומותקנת גרסה ישנה יותר של האפליקציה, המשתמש מועבר לחנות Play כדי לשדרג את האפליקציה. אפליקציית אנדרואיד צריכה להיות רשומה בקונסולה. |
handleCodeInApp | BOOL | האם הקישור לפעולת האימייל ייפתח תחילה באפליקציה לנייד או בקישור אינטרנט. ברירת המחדל היא שקר. כאשר הוא מוגדר כ-true, קישור קוד הפעולה יישלח כקישור אוניברסלי או קישור לאפליקציה של Android וייפתח על ידי האפליקציה אם מותקנת. במקרה השקרי, הקוד יישלח תחילה לווידג'ט האינטרנט ולאחר מכן ב-Continue יפנה מחדש לאפליקציה אם מותקנת. |
dynamicLinkDomain | NSString | מגדיר את תחום הקישור הדינמי (או תת-הדומיין) לשימוש עבור הקישור הנוכחי אם הוא ייפתח באמצעות Firebase Dynamic Links. מכיוון שניתן להגדיר מספר דומיינים של קישורים דינמיים לכל פרויקט, שדה זה מספק את היכולת לבחור אחד במפורש. אם לא מסופק, הדומיין הראשון משמש כברירת מחדל. |
הדוגמה הבאה ממחישה כיצד לשלוח קישור לאימות אימייל שייפתח באפליקציה לנייד תחילה כקישור דינמי של Firebase באמצעות דומיין הקישור הדינמי המותאם אישית example.page.link
(אפליקציית iOS com.example.ios
או אפליקציית Android com.example.android
שבו האפליקציה תתקין אם היא לא כבר מותקנת והגרסה המינימלית היא 12
). הקישור העמוק יכיל את מטען כתובת האתר להמשך https://www.example.com/?email=user@example.com
.
מָהִיר
var actionCodeSettings = ActionCodeSettings.init() actionCodeSettings.canHandleInApp = true let user = Auth.auth().currentUser() actionCodeSettings.URL = String(format: "https://www.example.com/?email=%@", user.email) actionCodeSettings.iOSbundleID = Bundle.main.bundleIdentifier! actionCodeSettings.setAndroidPakageName("com.example.android", installIfNotAvailable:true, minimumVersion:"12") // When multiple custom dynamic link domains are defined, specify which one to use. actionCodeSettings.dynamicLinkDomain = "example.page.link" user.sendEmailVerification(withActionCodeSettings:actionCodeSettings { error in if error { // Error occurred. Inspect error.code and handle error. return } // Email verification sent. })
Objective-C
FIRActionCodeSettings *actionCodeSettings = [[FIRActionCodeSettings alloc] init]; actionCodeSettings.handleCodeInApp = YES; FIRUser *user = [FIRAuth auth].currentUser; NSString *urlString = [NSString stringWithFormat:@"https://www.example.com/?email=%@", user.email]; actionCodeSettings.URL = [NSURL URLWithString:urlString]; actionCodeSettings.iOSBundleID = [NSBundle mainBundle].bundleIdentifier; // When multiple custom dynamic link domains are defined, specify which one to use. actionCodeSettings.dynamicLinkDomain = @"example.page.link"; [actionCodeSettings setAndroidPackageName:@"com.example.android" installIfNotAvailable:YES minimumVersion:'12']; [user sendEmailVerificationWithActionCodeSettings:actionCodeSettings completion:^(NSError *_Nullable error) { if (error) { // Error occurred. Inspect error.code and handle error. return; } // Email verification sent. }];
הגדרת קישורים דינמיים של Firebase
Firebase Auth משתמש ב-Firebase Dynamic Links בעת שליחת קישור שאמור להיפתח באפליקציה לנייד. על מנת להשתמש בתכונה זו, יש להגדיר קישורים דינמיים ב-Firebase Console.
הפעל קישורים דינמיים של Firebase:
- במסוף Firebase , פתח את הקטע קישורים דינמיים .
אם עדיין לא הסכמתם לתנאי ה-Dynamic Links ויצרתם תחום Dynamic Links, עשו זאת כעת.
אם כבר יצרת דומיין Dynamic Links, שים לב לזה. תחום קישורים דינמיים נראה בדרך כלל כמו הדוגמה הבאה:
example.page.link
תזדקק לערך זה כאשר תגדיר את אפליקציית Apple או Android ליירט את הקישור הנכנס.
הגדרת אפליקציות אנדרואיד:
- אם אתה מתכנן לטפל בקישורים האלה מאפליקציית Android שלך, יש לציין את שם החבילה של Android בהגדרות הפרויקט של Firebase Console. בנוסף, יש לספק את SHA-1 ו-SHA-256 של אישור הבקשה.
- תצטרך גם להגדיר את מסנן הכוונות עבור הקישור העמוק בקובץ AndroidManifest.xml שלך.
- למידע נוסף על כך, עיין בהוראות קבלת קישורים דינמיים ל-Android .
הגדרת יישומי אפל:
- אם אתה מתכנן לטפל בקישורים האלה מהאפליקציה שלך, יש לציין את מזהה החבילה בהגדרות הפרויקט של Firebase Console. בנוסף, יש לציין גם את מזהה ה-App Store ואת מזהה צוות המפתחים של Apple.
- תצטרך גם להגדיר את תחום הקישור האוניברסלי של FDL כדומיין משויך ביכולות היישום שלך.
- אם אתה מתכנן להפיץ את האפליקציה שלך לגרסאות iOS 8 ומטה, תצטרך להגדיר את מזהה החבילה שלך כסכימה מותאמת אישית עבור כתובות URL נכנסות.
- למידע נוסף על כך, עיין בהוראות קבלת פלטפורמות אפל קישורים דינמיים .
טיפול בפעולות דואר אלקטרוני ביישום אינטרנט
אתה יכול לציין אם ברצונך לטפל בקישור קוד הפעולה מאפליקציית אינטרנט תחילה ולאחר מכן להפנות מחדש לדף אינטרנט אחר או לאפליקציה סלולרית לאחר סיום מוצלח, בתנאי שהאפליקציה לנייד זמינה. זה נעשה על ידי הגדרת handleCodeInApp
ל- false
באובייקט FIRActionCodeSettings
(Obj-C) או ActionCodeSettings
(Swift). אמנם אין צורך במזהה חבילה או שם חבילת אנדרואיד, אך אספקתם תאפשר למשתמש להפנות חזרה לאפליקציה שצוינה עם השלמת קוד הפעולה בדוא"ל.
כתובת האתר המשמשת כאן, היא זו שהוגדרה בקטע תבניות פעולות דוא"ל. ברירת מחדל מסופקת עבור כל הפרויקטים. עיין בהתאמה אישית של מטפלי דוא"ל כדי ללמוד עוד כיצד להתאים אישית את המטפל בפעולות דוא"ל.
במקרה זה, הקישור בתוך פרמטר השאילתה continueURL
יהיה קישור FDL שהעומס שלו הוא כתובת ה- URL
שצוינה באובייקט ActionCodeSettings
. בעוד שאתה יכול ליירט ולטפל בקישור הנכנס מהאפליקציה שלך ללא תלות נוספת, אנו ממליצים להשתמש בספריית הלקוח FDL כדי לנתח עבורך את הקישור העמוק.
בעת טיפול בפעולות דוא"ל כגון אימות דוא"ל, יש לנתח את קוד הפעולה מפרמטר השאילתה oobCode
מהקישור העמוק ולאחר מכן להחיל אותו באמצעות applyActionCode
כדי שהשינוי ייכנס לתוקף, כלומר אימייל לאימות.
טיפול בפעולות אימייל באפליקציה לנייד
אתה יכול לציין אם ברצונך לטפל תחילה בקישור קוד הפעולה בתוך היישום הנייד שלך, בתנאי שהוא מותקן. עם אפליקציות אנדרואיד, יש לך גם את היכולת לציין דרך ה- androidInstallIfNotAvailable
שהאפליקציה תותקן אם המכשיר תומך בה והיא עדיין לא מותקנת. אם הקישור נלחץ ממכשיר שאינו תומך באפליקציה לנייד, הוא נפתח מדף אינטרנט במקום זאת. זה נעשה על ידי הגדרת handleCodeInApp
ל- true
באובייקט FIRActionCodeSettings
(Obj-C) או ActionCodeSettings
(Swift). יש לציין גם את שם החבילה של ה-Android או מזהה החבילה של האפליקציה לנייד. כתובת האתר החלופית המשמשת כאן, כאשר אין אפליקציה לנייד זמינה, היא זו המוגדרת בקטע תבניות פעולות דוא"ל. ברירת מחדל מסופקת עבור כל הפרויקטים. עיין בהתאמה אישית של מטפלי דוא"ל כדי ללמוד עוד כיצד להתאים אישית את המטפל בפעולות דוא"ל.
במקרה זה, הקישור לאפליקציה לנייד שנשלח למשתמש יהיה קישור FDL שהעומס שלו הוא כתובת ה-URL של קוד הפעולה, המוגדר במסוף, עם פרמטרי השאילתה oobCode
, mode
, apiKey
ו- continueUrl
. האחרונה תהיה URL
המקורית שצוינה באובייקט FIRActionCodeSettings
(Obj-C) או ActionCodeSettings
(Swift). בעוד שאתה יכול ליירט ולטפל בקישור הנכנס מהאפליקציה שלך ללא תלות נוספת, אנו ממליצים להשתמש בספריית הלקוח FDL כדי לנתח עבורך את הקישור העמוק. ניתן להחיל את קוד הפעולה ישירות מאפליקציה לנייד בדומה לאופן שבו הוא מטופל מזרימת האינטרנט המתוארת בסעיף התאמה אישית של מטפלי אימייל .
בעת טיפול בפעולות דוא"ל כגון אימות דוא"ל, יש לנתח את קוד הפעולה מפרמטר השאילתה oobCode
מהקישור העמוק ולאחר מכן להחיל אותו באמצעות applyActionCode
כדי שהשינוי ייכנס לתוקף, כלומר אימייל לאימות.