2017-01-19 5 views
0

私はこの問題を解決しようとしています。私は特定のテスト活動のためにprestashop REST APIを使用したいと思います。私の問題は、このフォームでは認証できず、バッファとDOMParserを使用していなくても、アンドロイド4.4.1のプロジェクトで作業しているためで、バッファには互換性がないからです。Javascript ES6(React Native)のPrestashopのRest APIからデータを取得する(json)

助けてもらえますか?前もって感謝します。宜しくお願いします。 'X3IIMEP8JJI3PKPXIMEP8JJI3PKPICJMM' =

let API = null; 
const SERVER_ADDRESS = 'http://192.168.1.5/prestashop/api/'; 

も ​​"& OUTPUT_FORMAT = JSON" constのトークンを使用してみました//;:

は、私はこのような何か(以下の2つの例を)やりました

try { 
    fetch(SERVER_ADDRESS, { 
     method: 'GET', 
     headers: { 
      'Authorization': token 
     } 
    })  
    .then(function(response) { 
     if(response.status == 200) return response.json(); 
     else throw new Error('Something went wrong on api server!'); 
    }) 
    .then(function(response) { 
     console.debug(response); 
     // ... 
    }) 
} catch (e) { 
    alert(e); 
} 

========================

import {Buffer} from 'buffer'; 
import {DOMParser} from 'xmldom'; 

let API = null; 
const SERVER_ADDRESS = 'http://192.168.1.5/prestashop/api/'; 
const REST = { 
    CMS: 'content_management_system' 
}; 
const token = 'XGRCBUW745EH4SPHCU92MKL4RGNVPYXY'; 
const AuthorizationString = 'Basic ' + new Buffer(token + ':').toString('Base64'); 

try { 

    componentDidMount({ 
    fetch(SERVER_ADDRESS, { 
     method: 'GET', 
     headers: { 
      'Authorization': AuthorizationString 
     } 
    }).then(function (response) { 
     response.text().then(function (text) { 
      API = new DOMParser().parseFromString(text); 
     }); 
    }); 

    } 

} 

catch (e) { 
    alert(e); 
} 

答えて

0

は、あなたは私が

headers: { 
     'Authorization': 'Bearer '+token 
    } 

を試してみましたprestashopの認証方法はわかりませんが、私のシステムではJWTが使用されており、トークンに接頭辞が必要です。Bearer

+0

私は試してみよう!しかし、私は "Advanced REST client"(Chrome ext)を使ってヘッダー形式を取得しています。 HTTPヘッダー: "認証"パス: "Basic VFc2RjUxQUHAJHSIIPEO28CS978D3N9DN02U0U1ZZS0k6VFc2RjUxQU" 私のアプリケーション内では、この基本文字列をフェッチヘッダのconstとして使用します。 –

+0

一般に、ベアラはトークンベースの認証に使用されます。基本的なのは、クライアントがユーザー名/パスワードタイプの資格情報を送信している場合です。 – d4rklit3

関連する問題