Как создать собственную услугу, доступную по всему миру, которая будет вызывать сервер currentUser()
только один раз при загрузке страницы, если пользователь зарегистрирован, а затем сохранит его и предоставит данные контроллерам или состояниям до выхода из системы?
Теперь я решаю много раз во многих состояниях или контроллерах currentUser()
, я нашел в документах: authparseresponse, что это возможность сделать собственный сервис, но я не знаю, как правильно это сделать.
например, в ui-router У меня два вызова сервера, будет достаточно только при загрузке страницы:
.state('login', {
url: '/login',
templateUrl: 'auth/_login.html',
controller: 'AuthCtrl',
onEnter: [
'$state', 'Auth',
function($state, Auth) {
Auth.currentUser().then(function() {
$state.go('home');
});
}
]
})
.state('dashboard', {
url: '/dashboard',
templateUrl: 'dashboard.html',
onEnter: [
'$state', 'Auth',
function($state, Auth) {
Auth.currentUser().then(function(user) {}, function(err) {
$state.go('home');// user not logged in
});
}
]
})
или каждый раз при следующем вызове сервера в NavController:
app.controller('NavController', [
'$state', '$scope', 'Auth', function($state, $scope, Auth) {
$scope.signedIn = Auth.isAuthenticated;
$scope.logout = Auth.logout; // logout function
Auth.currentUser().then(function(user) {
$scope.user = user;
});
$scope.$on('devise:login', function(e, user) {
$scope.user = user;
});
$scope.$on('devise:logout', function(e, user) {
$scope.user = {};
$state.go("home");
});
}
]);
Я нашел подобный вопрос без ответа: qaru.site/info/278184/...