Suche…


Syntax

  • E-Mail-Bestätigung an die E-Mail-Adresse des angemeldeten Benutzers senden. Mit Firebase können Sie anpassen, was Ihre E-Mail beinhaltet
  • Wenn eine E-Mail das E-Mail-Konto des Benutzers erreicht, klickt der Benutzer auf
  • Verwenden Sie Ihren Router Ihrer Wahl (in diesem Beispiel wird der angle-ui-router verwendet), um die Parameter in der URL abzufangen.
  • Kauen Sie die Parameter mit der Funktion applyCode in Firebase.
  • Nachfolgend finden Sie die Funktionen, die am obigen Prozess beteiligt sind.

Parameter

Die Funktion... Tut
sendEmailVerification () Sendet eine Bestätigungs-E-Mail an einen Benutzer.
applyActionCode () Wendet den Aktionscode an, der emailVerified von false in true ändert

Bemerkungen

Die obigen Ausführungen fassen die Verwendung des E-Mail-Überprüfungsschemas mit Firebase zusammen. Bisher ist dies eine der einfachsten Methoden, um E-Mails zu überprüfen, die ich gesehen habe.

Es gibt eine ausführliche Erläuterung des obigen Beispiels für die E-Mail-Überprüfung mit Firebase 3.0 SDK.

Code zur Überprüfung des Send-cum-Prozesses - 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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow