我对本地人反应还很新,所以请保持谦逊:)
我需要将令牌传递到授权标头-这就是我刚才无法使用的内容:
const auth = new Buffer('username : <SECRETKEYHERE>');
const token = auth.toString('base64');
const authHeader = 'Basic ' + token;
fetch('https://example.com/get-token.php', {
method: 'POST',
headers: {
'Authorization': authHeader,
'Content-Type': 'application/json'
},
}).then((response) => response.text())
.then((responseText) => {
alert(responseText);
console.log(responseText);
})
(注意:上面的base64转换按预期方式工作,并返回正确的base64密钥,所以这不是问题)
但是,如果我将base64密钥直接放入授权标头中,则请求将按预期工作:
fetch('https://example.com/get-token.php', {
method: 'POST',
headers: {
'Authorization': 'Basic <BASE64KEYHERE>',
'Content-Type': 'application/json'
},
}).then((response) => response.text())
.then((responseText) => {
alert(responseText);
console.log(responseText);
})
我已经搜索过SO,没有运气就尝试了各种解决方案,主要的解决方案我已经看过了:
Using an authorization header with Fetch in React Native
React native - FETCH - Authorization header not working
如果有人能帮助我或指出正确的方向,我将不胜感激,因为我花了很多时间试图使它正常工作。
答案 0 :(得分:1)
通常,HTTP基本身份验证标头的格式为
Authorization:Basic <Base64EncodedAuthString>
其中
Base64EncodedAuthString:=<username>:<password>
所以我想知道结肠中的空白
const auth = new Buffer('username : <SECRETKEYHERE>');
,不是吗
const auth = new Buffer('username:<SECRETKEYHERE>');
相反?