Как сохранить сессию с angular-http-auth?
Я использую angular-http-auth для аутентификации в приложении angular-js.
вот функция входа в систему внутри контроллера входа в систему:
$scope.login = function() {
var credentials = Base64.encode($scope.username + ':' + $scope.password);
var config = { headers: { 'Authorization': 'Basic ' + credentials } };
$http.get('url/to/json/user', config)
.success(function() {
$http.defaults.headers.common['Authorization'] = 'Basic ' + credentials;
authService.loginConfirmed();
console.log('login success');
})
.error(function() {
console.log('login failed');
});
}
(base64 - сервис шифрования, идущий отсюда)
проблема: если пользователь уже вошел в систему и открыл новую вкладку или перезагрузил страницу, он должен снова войти в систему.
Как можно избежать этого и сохранить сеанс открытым, если пользователь перезагружает страницу или переходит по внешней ссылке?
1 ответ
Решение
Вы можете использовать файлы cookie или хранилище данных html5 для сохранения учетных данных или строку base64 с учетными данными. Затем вы можете загрузить их оттуда и проанализировать их в $http.defaults.headers.common['Authorization'] = 'Basic ' + credentials;
Надеюсь, поможет.