gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 23:14:51 27 4
gpt4 key购买 nike

我对此感到很头疼 - 我对使用 API 还比较陌生,还没有做任何需要身份验证的事情。

我一直无法向 API 发送 POST 请求。创建内容片段的端点是:

/entity/node

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

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

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

我的问题 - 当用户正确登录时,我需要设置 header ,以便所有 future 的发布请求都能正常工作。我怎样才能在 AngularJS 中做到这一点?

我尝试传递动态生成的代码:

"Authorization": "Basic " + auth,

其中auth是base64编码的user:pass,但这不起作用。我的想法是,这个值需要存储在某个地方,以便在发出 POST 请求时进行检索。但如何呢?

最佳答案

一旦你有了 token 就调用这个:

$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 注入(inject)您的应用配置并调用 authService.configure()

关于AngularJS - 在登录时存储基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31724031/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com