在React-Native中使用axios生成访问令牌

时间:2019-12-03 16:13:04

标签: javascript react-native

POSTMAN sample

我想在react-native中执行相同的过程,我已经尝试过这样

var baseHeaders = {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Authorization': 'Bearer ' + btoa(client_id + ':' + client_secret)
  };

var params = {
    client_id: client_id,
    client_secret: client_secret,
    grant_type: "client_credentials",
}

axios({
      method: 'POST',
      url: "http://transrv02-ap01.transsyssolutions.com:8080/apex/apxprd/oauth/token",
      headers: baseHeaders,  
      body:params      
    })
      .then((responseJson) => {  console.log("clientid---"+responseJson)})
      .catch((error) => {
        console.error(error);
      });

,但显示401错误。 任何人都可以帮助我! 预先感谢...。

2 个答案:

答案 0 :(得分:0)

您可以尝试...

axios.post('http://transrv02-ap01.transsyssolutions.com:8080/apex/apxprd/oauth/token',
    params,
    {
      headers: baseHeaders
    })
  .then((responseJson) => {  console.log("clientid---"+responseJson)})
  .catch((error) => {
    console.error(error);
  });

答案 1 :(得分:0)

最后,我发现自己不在axios中的方式

var baseHeaders = {
  'Content-Type': 'application/x-www-form-urlencoded',
  'Authorization': "Basic " + btoa(client_id + ":" + client_secret)
};
console.log(JSON.stringify(baseHeaders) + "baseHeaders")

var params = "grant_type=client_credentials";

console.log(JSON.stringify(params) + "params")

return fetch('http://apex/apxprd/oauth/token',{
  method: "POST",
  body: params,
  headers: baseHeaders
}).then((response) => response.json()).then((responsetokenJson) => {
  console.log(JSON.stringify(responsetokenJson) + "responseJsonclientid")
  var token = responsetokenJson.access_token
  console.log("this.props.tokens--" + token)

  this.setState({
    accessToken: token
  })
})