Как сохранить сессию с 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;

Надеюсь, поможет.

Другие вопросы по тегам