Ricerca…


Sintassi

  • Invia e-mail di verifica per l'indirizzo e-mail dell'utente registrato su file. Firebase ti consente di personalizzare ciò che la tua email comporta
  • Quando l'email raggiunge l'account e-mail dell'utente, l'utente fa clic
  • Utilizzando il router scelto (utilizzato angular-ui-router nell'esempio sopra), intercetta i parametri nell'URL.
  • Masticare i parametri usando la funzione applyCode in Firebase.
  • Vedi sotto per le funzioni coinvolte nel processo sopra.

Parametri

La funzione... fa
sendEmailVerification () Invia una email di verifica a un utente.
applyActionCode () Applica il codice azione che cambia emailVerified da false a true

Osservazioni

Quanto sopra riassume piuttosto come utilizzare lo schema di verifica e-mail con Firebase. Finora, si presenta come uno dei modi più semplici per verificare l'e-mail che ho visto.

C'è un po 'di una spiegazione estesa dell'esempio sopra disponibile su Email Verification con Firebase 3.0 SDK.

Codice d'azione per la verifica dell'invio del processo di invio - 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow