首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用angular-http-auth传递凭据?

如何使用angular-http-auth传递凭据?
EN

Stack Overflow用户
提问于 2013-09-20 23:16:23
回答 1查看 4.3K关注 0票数 2

在我的应用程序中,身份验证使用的是angular-http-auth

当用户填写用户名/密码表单并提交时,它从控制器指向login()函数:

代码语言:javascript
复制
$scope.login = function() {
    var credentials = Base64.encode($scope.username + ':' + $scope.password);
    $http.defaults.headers.common['Authorization'] = 'Basic ' + credentials;

    User.login(                           // reference to the $resource service
        function() {                      // success callback
            authService.loginConfirmed(); // method of angular-http-auth
        }
    );

}

用户是使用$resource创建的服务

代码语言:javascript
复制
factory('User', function($resource){
    return $resource('url/to/json', 
        {}, 
        {   'login': { method: 'GET', isArray:true }
        });
})

base64是一种来自here的加密服务

它是这样工作的,但是有没有一种方法可以通过angular-http-auth传递凭证,而不是通过$http设置默认的头部呢?

EN

回答 1

Stack Overflow用户

发布于 2014-03-31 05:20:33

这样做的问题是:

代码语言:javascript
复制
$http.defaults.headers.common['Authorization'] = 'Basic ' + credentials;

您现在正在为发出的所有$http请求设置“凭据”。如果您不想这样做,并且希望在每个$resource调用中直接传递“凭据”,那么您可以这样做,这看起来就是您要开始做的事情。

代码语言:javascript
复制
return $resource('url/to/json', 
    {}, 
    {   'login': {
             method: 'GET',
             headers: { 'Authorization': 'Basic ' + credentials }
         }
    });

我没有尝试过这个例子,但是我有类似的代码,其中的方法是一个POST,所以我在返回之前对$resource的结果调用save(),而'login‘键是'save’。

但是,由于您正在使用自定义的"login“方法执行GET,因此这应该是可行的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18920255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档