加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJS – 在登录时存储基本身份验证

发布时间:2020-12-17 07:18:34 所属栏目:安全 来源:网络整理
导读:我正在用这个敲打墙 – 我对使用API??相对较新,并且尚未做任何需要身份验证的事情. 我一直在向API发送POST请求.创建内容的端点是: /entity/node 如果我发送以下内容,我可以发送成功的POST请求: headers: { "Authorization": "Basic YWRtaW46MTIzcXdl",//ad
我正在用这个敲打墙 – 我对使用API??相对较新,并且尚未做任何需要身份验证的事情.

我一直在向API发送POST请求.创建内容的端点是:

/entity/node

如果我发送以下内容,我可以发送成功的POST请求:

headers: {
       "Authorization": "Basic YWRtaW46MTIzcXdl",//admin:123qwe
   },

我遇到的问题是授权.我在这里指定Basic,然后是编码字符串,这是我的管理员登录.因此,当硬编码时,我可以发布.

我的问题 – 当用户正确登录时,我需要设置标题,以便将来所有的帖子请求都能正常工作.我怎么能在AngularJS中做到这一点?

我试过传递一个动态生成的代码:

"Authorization": "Basic " + auth,

其中auth是base64编码的用户:pass,但这不起作用.我的想法是,每当发出POST请求时,需要将此值存储在某处以便检索.但是怎么样?

一旦有了令牌,请调用此方法:
$httpProvider.defaults.transformRequest.push(function (data,headersGetter) {
    if (authToken !== null) {
        var headers = headersGetter();
        angular.extend(headers,'Authorization: basic ' + authToken);
    }

    return data;
});

编辑:
没有测试过,但它应该是这样的:

myApp.provider('authService',function() {

    var authToken = null;

    this.$get = ['$httpProvider',function($httpProvider) {
        return {
            configure: configure,setAuthToken: setAuthToken
        }
    };

    function configure() {
        $httpProvider.defaults.transformRequest.push(function (data,headersGetter) {
            if (authToken !== null) {
                var headers = headersGetter();
                angular.extend(headers,'Authorization: basic ' + authToken);
            }

            return data;
        });
    }

    function setAuthToken(token) {
        authToken = token;
    }
});

然后将authService注入您的app配置并调用authService.configure()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读