如何使用angular-http-auth保持会话?

时间:2013-09-29 09:32:13

标签: session angularjs http-authentication

我在angular-js app中使用angular-http-auth进行身份验证。

这是登录控制器内的登录功能:

$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是来自here的加密服务)

问题:如果用户已登录并打开新标签页或重新加载页面,则必须再次登录。

如果用户重新加载页面或来自外部链接,怎么可能避免这种情况并保持会话打开?

1 个答案:

答案 0 :(得分:3)

您可以使用Cookie或html5数据存储区来保存凭据,也可以使用凭据保存base64字符串。然后,您可以从那里加载它们并将它们解析为$ http.defaults.headers.common ['Authorization'] ='Basic'+凭证;

希望它有所帮助。