firebase
Проверка электронной почты после регистрации
Поиск…
Синтаксис
- Отправьте подтверждение по электронной почте, чтобы зарегистрировать адрес электронной почты пользователя в файле. Firebase позволяет вам настроить, что влечет за собой ваша электронная почта
- Когда электронная почта попадает на учетную запись электронной почты пользователя, пользователь нажимает
- Используя свой Маршрутизатор по выбору (используемый угловой ui-маршрутизатор в приведенном выше примере), перехватите параметры в URL-адресе.
-
applyCode
параметры сapplyCode
функцииapplyCode
в Firebase. - Ниже приведены функции, связанные с описанным выше процессом.
параметры
Функция... | Есть ли |
---|---|
sendEmailVerification () | Отправляет электронное письмо с подтверждением пользователю. |
applyActionCode () | Применяет код действия, который изменяет emailVerified от false до true |
замечания
Вышеупомянутое довольно много подводит итог, как использовать схему проверки электронной почты с Firebase. Пока это один из самых простых способов проверить электронную почту, которую я видел.
Ниже приведено подробное объяснение приведенного выше примера, доступного при проверке электронной почты с помощью Firebase 3.0 SDK.
Код действия проверки отправки-обработки - AngularJS
// thecontroller.js
$scope.sendVerifyEmail = function() {
console.log('Email sent, whaaaaam!');
currentAuth.sendEmailVerification();
}
// where currentAuth came from something like this:
// routerconfig
....
templateUrl: 'bla.html',
resolve: {
currentAuth:['Auth', function(Auth) {
return Auth.$requireSignIn() // this throws an AUTH_REQUIRED broadcast
}]
}
...
// intercept the broadcast like so if you want:
....
$rootScope.$on("$stateChangeError", function(event, toState, toParams, fromState, fromParams, error) {
if (error === "AUTH_REQUIRED") {
$state.go('login', { toWhere: toState });
}
});
....
// So user receives the email. How do you process the `oobCode` that returns?
// You may do something like this:
// catch the url with its mode and oobCode
.state('emailVerify', {
url: '/verify-email?mode&oobCode',
templateUrl: 'auth/verify-email.html',
controller: 'emailVerifyController',
resolve: {
currentAuth:['Auth', function(Auth) {
return Auth.$requireSignIn()
}]
}
})
// Then digest like so where each term is what they sound like:
.controller('emailVerifyController', ['$scope', '$stateParams', 'currentAuth', 'DatabaseRef',
function($scope, $stateParams, currentAuth, DatabaseRef) {
console.log(currentAuth);
$scope.doVerify = function() {
firebase.auth()
.applyActionCode($stateParams.oobCode)
.then(function(data) {
// change emailVerified for logged in User
toastr.success('Verification happened', 'Success!');
})
.catch(function(error) {
$scope.error = error.message;
toastr.error(error.message, error.reason, { timeOut: 0 });
})
};
}
])
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow