Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript react本机JWT身份验证错误获取api_Javascript_React Native_React Native Android - Fatal编程技术网

Javascript react本机JWT身份验证错误获取api

Javascript react本机JWT身份验证错误获取api,javascript,react-native,react-native-android,Javascript,React Native,React Native Android,React原生JWT身份验证错误获取api 我正试图通过以下方法使用jwt auth获取用户详细信息 login() { alert(this.state.UserName); fetch (Api+''+'/wp-json/jwt-auth/v1/token',{ method: "POST", username: this.state.UserName, password: this.state.Password }).

React原生JWT身份验证错误获取api

我正试图通过以下方法使用jwt auth获取用户详细信息

login() {
    alert(this.state.UserName);
    fetch (Api+''+'/wp-json/jwt-auth/v1/token',{
        method: "POST",
        username: this.state.UserName,
        password: this.state.Password
    }).then((response) => response.json())
      .then((responseData) =>{
          console.log("LoginData:-" + JSON.stringify(responseData));
       }).done();
    }
}
和获取错误:-

{
    "code":"[jwt_auth] empty_username",
    "message":"<strong>ERROR</strong>: The username field is empty.",
    "data":{"status":403}
}
{
“代码”:“[jwt\u auth]空\u用户名”,
“消息”:“错误:用户名字段为空。”,
“数据”:{“状态”:403}
}

如果有人知道,请提供帮助。

如果您的API使用基本身份验证,则需要添加用户名和密码作为身份验证标头

示例

const base64 = require('base-64');
login() {
    alert(this.state.UserName);
    fetch (Api+''+'/wp-json/jwt-auth/v1/token',{
        method: "POST",
        headers: {
            'Authorization', 'Basic ' + base64.encode(this.state.UserName+ ":" + this.state.Password)
        }
    }).then((response) => response.json())
      .then((responseData) =>{
          console.log("LoginData:-" + JSON.stringify(responseData));
       }).done();
    }
}
我认为你不再需要答案了,因为发布这个问题已经一年了,如果还有人需要的话

如React Native的选项卡所示,您需要将数据传递到body标题中的JWT令牌,如下图所示,这对我有效,因此请查看并更新,如果有任何问题

login(){
    fetch(Api+''+'/wp-json/jwt-auth/v1/token', {
      method: 'POST',
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
        'Authorization': 'JWT '+<token> // There will be different type of authorization like Bearer, JWT, Basic
      },
      body: JSON.stringify({
        username: this.state.UserName,
        password: this.state.Password
      }),
    })
    .then((response) => response.json())
    .then((responseData) => {
        console.log("LoginData:-" + JSON.stringify(responseData));
    }).done();
}
login(){
获取(Api+'+'/wp json/jwt auth/v1/token){
方法:“POST”,
标题:{
“接受”:“应用程序/json”,
“内容类型”:“应用程序/json”,
'Authorization':'JWT'+//将有不同类型的授权,如Bearer、JWT、Basic
},
正文:JSON.stringify({
用户名:this.state.username,
密码:this.state.password
}),
})
.then((response)=>response.json())
.然后((响应数据)=>{
log(“loginda:-”+JSON.stringify(responseData));
}).完成();
}