私はプロジェクトでMozilla Personaを使用しています。 onlogin
の後にloggedInUser
を更新したいと思います。しかしloggedInUser
は、navigator.id.watch()
に渡されるオブジェクトの属性です。 navigator.id.watch()
が(AngularJSサービスで)1回呼び出されました。 もう一度呼び出すと、オブジェクト全体を渡す必要がありますか?それは正しいとは思わない。私が間違っている?同じように、Mozilla Personaでonlogin後にloggedInUserを更新するには
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();
}
};
});
上記の 'app.factory()'コールでは、現在ログインしているユーザの電子メールアドレスを検索し、それを渡すことができますか? 通常、 'navigator.id.watch()'を呼び出すたびに、バックエンドから現在ログインしているユーザの電子メールアドレスを取得できるようにします。 –