1. ホーム
  2. react-native

[解決済み] React-NativeアプリでAxios GETとAuthorizationヘッダを使用する

2022-03-12 12:50:26

質問

を必要とするAPIのGETリクエストにaxiosを使用しようとしています。 Authorization ヘッダを生成します。

私の現在のコードです。

const AuthStr = 'Bearer ' + USER_TOKEN;

ここで USER_TOKEN は必要なアクセストークンです。この文字列の連結が問題なのでしょう。 AuthStr = 'Bearer 41839y750138-391' の場合、次のGETリクエストは動作し、私が求めるデータを返します。

axios.get(URL, { 'headers': { 'Authorization': AuthStr } })
  .then((response => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error);
  });

また、これをグローバルヘッダーとして設定してみましたが、成功しませんでした。

どうすればいいですか?

この投稿を目にした人のために、役に立つかもしれないことを...。 実は、私のコードには何も問題がありません。私はパスワードのアクセスコードではなく、client_credentialsタイプのアクセスコードを要求するミスを犯しました(#facepalms)。 参考までに、私はurlencoded postを使用しているので、querystringを使用しています。 だから、いくつかの例コードを探しているかもしれない人のために... ここに私の完全な要求があります。

デバッグを手伝ってくれた@swapnilに大感謝です。

   const data = {
      grant_type: USER_GRANT_TYPE,
      client_id: CLIENT_ID,
      client_secret: CLIENT_SECRET,
      scope: SCOPE_INT,
      username: DEMO_EMAIL,
      password: DEMO_PASSWORD
    };



  axios.post(TOKEN_URL, Querystring.stringify(data))   
   .then(response => {
      console.log(response.data);
      USER_TOKEN = response.data.access_token;
      console.log('userresponse ' + response.data.access_token); 
    })   
   .catch((error) => {
      console.log('error ' + error);   
   });



const AuthStr = 'Bearer '.concat(USER_TOKEN); 
axios.get(URL, { headers: { Authorization: AuthStr } })
 .then(response => {
     // If request is good...
     console.log(response.data);
  })
 .catch((error) => {
     console.log('error ' + error);
  });