Używam Mozilla Persona w projekcie. Chcę zaktualizować loggedInUser
po onlogin
. Ale loggedInUser
jest atrybutem obiektu przekazanego do navigator.id.watch()
. navigator.id.watch()
został wywołany raz (w usłudze AngularJS). Czy powinienem ponownie zadzwonić, przekazując cały obiekt? To nie wydaje się właściwe. Czy się mylę? = PJak zaktualizować loggedInUser po zalogowaniu w Mozilla Persona
Oto mój serwis:
app.factory('persona', function ($rootScope, $http) {
navigator.id.watch({
loggedInUser: null,
onlogin: function onlogin(assertion) {
console.log(this);
$http.post('/signIn', { assertion: assertion })
.then(function (data, status, headers, config) {
$rootScope.$broadcast('signIn', data.data);
}, function (data, status, headers, config) {
$rootScope.$broadcast('signInError', data.data);
});
},
onlogout: function onlogout(param) {
$http.get('/signOut')
.then(function (data, status, headers, config) {
$rootScope.$broadcast('signOut', data.data);
}, function (data, status, headers, config) {
$rootScope.$broadcast('signOutError', data.data);
});
}
});
return {
signIn: function signIn() {
navigator.id.request();
},
signOut: function signOut() {
navigator.id.logout();
}
};
});
W powyższym wywołaniu 'app.factory()' można wyszukać adres e-mail aktualnie zalogowanego użytkownika, a następnie przekazać go? Zazwyczaj to, co ludzie robią, polega na tym, że mają wyjście z backendu, adres e-mail aktualnie zalogowanego użytkownika, dzięki czemu można go odebrać przy każdym wywołaniu funkcji 'navigator.id.watch()'. –