我是相当新的反应本地人,所以请温柔:)
我需要将令牌传递给授权标头-这是我刚才没有工作的:
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,尝试了各种解决方案,但运气不好,主要的我已经看过了:
在React Native中使用带有Fetch的授权标头
React native-FETCH-授权标头不起作用
如果有人能帮助我或指出正确的方向,我将不胜感激,因为我花了相当多的时间试图让它毫无乐趣地工作。
基本身份验证头HTTP格式通常为
Authorization:Basic <Base64EncodedAuthString>
那里
Base64EncodedAuthString:=<username>:<password>
所以我想知道你结肠前后的空白
const auth = new Buffer('username : <SECRETKEYHERE>');
,不应该是
const auth = new Buffer('username:<SECRETKEYHERE>');
而不是?
另见https://www.rfc-editor.org/rfc/rfc7617#page-5