Google стремится продвигать расовую справедливость для черных сообществ. Смотри как.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Передача состояния в действиях электронной почты

Вы можете передать состояние через URL-адрес продолжения при отправке действий по электронной почте для сброса пароля или проверки электронной почты пользователя. Это дает пользователю возможность вернуться в приложение после завершения действия. Кроме того, вы можете указать, обрабатывать ли ссылку действия электронной почты непосредственно из мобильного приложения, если оно установлено вместо веб-страницы.

Это может быть чрезвычайно полезно в следующих распространенных сценариях:

  • Пользователь, который еще не вошел в систему, может пытаться получить доступ к содержимому, для которого требуется войти в систему. Однако пользователь мог забыть свой пароль и, следовательно, запустить поток сброса пароля. В конце потока пользователь ожидает возврата к разделу приложения, к которому он пытался получить доступ.

  • Приложение может предлагать доступ только к проверенным учетным записям. Например, бюллетень может потребовать от пользователя подтвердить свою электронную почту перед подпиской. Пользователь должен пройти проверку электронной почты и ожидать возврата к приложению, чтобы завершить свою подписку.

  • В других случаях пользователь может запустить поток со своего мобильного устройства и ожидать после проверки возврата в свое мобильное приложение вместо браузера.

Возможность передавать состояние через URL-адрес продолжения - это мощная функция, предоставляемая Firebase Auth, которая может значительно улучшить взаимодействие с пользователем.

Передача URL состояния / продолжения в действиях электронной почты

Для безопасной передачи URL-адреса продолжения домен для URL-адреса должен быть внесен в белый список в консоли Firebase . Это делается в разделе « Аутентификация » путем добавления этого домена в список авторизованных доменов на вкладке « Метод входа », если его там еще нет.

Экземпляр firebase.auth.ActionCodeSettings необходимо firebase.auth.ActionCodeSettings при отправке электронного письма для сброса пароля или электронного письма с подтверждением. Этот интерфейс принимает следующие параметры:

параметр Тип Описание
url строка

Устанавливает ссылку (состояние / продолжение URL), которая имеет разные значения в разных контекстах:

  • Когда ссылка обрабатывается в виджетах веб-действий, это глубокая ссылка в параметре запроса continueUrl .
  • Когда ссылка обрабатывается непосредственно в приложении, это параметр запроса continueUrl в глубокой ссылке динамической ссылки.
iOS ({bundleId: string} | undefined) Устанавливает идентификатор пакета iOS. Это попытается открыть ссылку в приложении iOS, если оно установлено. Приложение iOS должно быть зарегистрировано в консоли.
android ({packageName: string, installApp: boolean | undefined, минимумVersion: строка | undefined} | undefined) Устанавливает имя пакета Android. Это попытается открыть ссылку в приложении для Android, если оно установлено. Если передано installApp, оно указывает, следует ли устанавливать приложение Android, если устройство поддерживает его, а приложение еще не установлено. Если это поле предоставляется без packageName, выдается ошибка, объясняющая, что packageName должно быть предоставлено вместе с этим полем. Если указано минимальное значение версии и установлена ​​более старая версия приложения, пользователь попадает в Play Store для обновления приложения. Android-приложение должно быть зарегистрировано в консоли.
handleCodeInApp (Логический | неопределенный) Будет ли ссылка на действие электронной почты сначала открываться в мобильном приложении или на веб-ссылке. По умолчанию установлено значение false. Если установлено значение true, ссылка кода действия будет отправлена ​​как ссылка универсального приложения или приложения для Android и будет открыта приложением, если оно установлено. В ложном случае код будет сначала отправлен на веб-виджет, а затем при продолжении перенаправит его в приложение, если оно установлено.
dynamicLinkDomain (Строка | неопределенный) Устанавливает домен динамической ссылки (или поддомен), который будет использоваться для текущей ссылки, если она будет открыта с использованием динамических ссылок Firebase. Поскольку для одного проекта можно настроить несколько доменов с динамическими ссылками, в этом поле можно явно выбрать один из них. Если ничего не указано, первый домен используется по умолчанию.

В следующем примере показано, как отправить ссылку для проверки электронной почты, которая сначала откроется в мобильном приложении в виде динамической ссылки Firebase, с помощью настраиваемого домена динамической ссылки example.page.link (приложение iOS com.example.ios или приложение Android com.example.android где приложение будет установлено, если еще не установлено, и минимальная версия составляет 12 ). Глубокая ссылка будет содержать полезную нагрузку продолжения URL https://www.example.com/?email=user@example.com .

 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 Auth использует динамические ссылки Firebase при отправке ссылки, которая должна быть открыта в мобильном приложении. Чтобы использовать эту функцию, необходимо настроить динамические ссылки в консоли Firebase.

  1. Включить динамические ссылки Firebase:

    1. В консоли Firebase откройте раздел « Динамические ссылки ».
    2. Если вы еще не приняли условия динамических ссылок и создали домен динамических ссылок, сделайте это сейчас.

      Если вы уже создали домен динамических ссылок, запомните это. Домен динамических ссылок обычно выглядит следующим образом:

      example.page.link

      Это значение понадобится вам при настройке приложения iOS или Android для перехвата входящей ссылки.

  2. Настройка приложений Android:

    1. Если вы планируете обрабатывать эти ссылки из своего приложения Android, имя пакета Android необходимо указать в настройках проекта Firebase Console. Кроме того, необходимо предоставить SHA-1 и SHA-256 сертификата приложения.
    2. Вам также необходимо настроить фильтр намерений для глубокой ссылки в файле AndroidManifest.xml .
    3. Подробнее об этом см. В инструкции «Получение динамических ссылок Android» .
  3. Настройка приложений iOS:

    1. Если вы планируете обрабатывать эти ссылки из своего приложения iOS, идентификатор пакета iOS должен быть указан в настройках проекта Firebase Console. Кроме того, необходимо указать идентификатор App Store и идентификатор группы разработчиков Apple.
    2. Вам также потребуется настроить домен универсальной связи FDL в качестве Ассоциированного домена в возможностях вашего приложения.
    3. Если вы планируете распространять свое приложение на iOS версии 8 и ниже, вам необходимо установить идентификатор пакета iOS в качестве настраиваемой схемы для входящих URL-адресов.
    4. Подробнее об этом см. В инструкции «Получение динамических ссылок iOS» .

Обработка действий электронной почты в веб-приложении

Вы можете указать, хотите ли вы сначала обработать ссылку на код действия из веб-приложения, а затем перенаправить на другую веб-страницу или мобильное приложение после успешного завершения при условии, что мобильное приложение доступно. Это делается путем установки handleCodeInApp в false в firebase.auth.ActionCodeSettings объекта. Хотя идентификатор пакета iOS или имя пакета Android не требуются, предоставление их позволит пользователю перенаправить обратно в указанное приложение после завершения кода действия по электронной почте.

Веб-URL, используемый здесь, является тем, который настроен в разделе шаблонов действий электронной почты. По умолчанию предоставляется для всех проектов. Обратитесь к настройке обработчиков электронной почты, чтобы узнать больше о том, как настроить обработчик действий электронной почты.

В этом случае ссылка в параметре запроса continueUrl будет ссылкой FDL, полезной нагрузкой которой является URL указанный в объекте ActionCodeSettings . Хотя вы можете перехватывать и обрабатывать входящую ссылку из вашего приложения без каких-либо дополнительных зависимостей, мы рекомендуем использовать клиентскую библиотеку FDL для анализа глубокой ссылки для вас.

При обработке действий с электронной почтой, таких как проверка электронной почты, код действия из параметра запроса oobCode необходимо проанализировать с глубокой ссылки, а затем применить через applyActionCode чтобы изменение вступило в силу, т. applyActionCode Электронная почта была проверена.

Обработка действий электронной почты в мобильном приложении

Вы можете указать, хотите ли вы сначала обрабатывать ссылку на код действия в мобильном приложении, если оно установлено. С приложениями Android у вас также есть возможность указать через android.installApp что приложение должно быть установлено, если устройство поддерживает его, а оно еще не установлено. Если ссылка нажата на устройстве, которое не поддерживает мобильное приложение, оно открывается с веб-страницы. Это делается путем установки handleCodeInApp к true в firebase.auth.ActionCodeSettings объекта. Также необходимо указать имя пакета Android для мобильного приложения или идентификатор пакета iOS.

Резервный веб-URL, используемый здесь, когда мобильное приложение недоступно, - это адрес, настроенный в разделе шаблонов действий по электронной почте. По умолчанию предоставляется для всех проектов. Обратитесь к настройке обработчиков электронной почты, чтобы узнать больше о том, как настроить обработчик действий электронной почты.

В этом случае отправленная пользователю ссылка на мобильное приложение будет являться ссылкой FDL, полезной нагрузкой которой является URL-адрес кода действия, настроенный в консоли, с параметрами запроса oobCode , mode , apiKey и continueUrl . Последний будет исходным URL указанным в объекте ActionCodeSettings . Хотя вы можете перехватывать и обрабатывать входящую ссылку из вашего приложения без каких-либо дополнительных зависимостей, мы рекомендуем использовать клиентскую библиотеку FDL для анализа глубокой ссылки для вас. Код действия может быть применен непосредственно из мобильного приложения аналогично тому, как он обрабатывается из веб-потока, описанного в разделе настройки обработчиков электронной почты .

При обработке действий с электронной почтой, таких как проверка электронной почты, код действия из параметра запроса oobCode необходимо проанализировать с глубокой ссылки, а затем применить через applyActionCode чтобы изменение вступило в силу, т. applyActionCode Электронная почта была проверена.