2017-01-07 25 views
6

Tôi đang cố sử dụng các trục cho yêu cầu GET với API yêu cầu tiêu đề Authorization.Sử dụng Axe GET với tiêu đề ủy quyền trong ứng dụng React-Native

mã hiện tại của tôi:

const AuthStr = 'Bearer ' + USER_TOKEN; 

nơi USER_TOKEN là thẻ truy cập cần thiết. Chuỗi nối này có thể là vấn đề như thể tôi đăng bài này là AuthStr = 'Bearer 41839y750138-391', yêu cầu GET sau đây hoạt động và trả về dữ liệu mà tôi theo sau.

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

Tôi cũng đã thử đặt tiêu đề này làm tiêu đề chung không thành công.

+0

gì console.log ('Bearer' + USER_TOKEN) đưa ra? – Swapnil

+0

Nó cung cấp cho Bearer 472397403110 (hoặc bất kỳ mã số) –

+1

gì console.log (typeof (USER_TOKEN)) cung cấp cho? – Swapnil

Trả lời

9

Đối với bất kỳ ai khác đi qua bài đăng này và có thể thấy nó hữu ích ... Thực sự không có gì sai với mã của tôi. Tôi đã mắc lỗi khi yêu cầu mã truy cập loại client_credentials thay vì mã truy cập mật khẩu (#facepalms). FYI Tôi đang sử dụng urlencoded post do đó sử dụng chuỗi truy vấn .. Vì vậy, đối với những người có thể đang tìm kiếm một số mã ví dụ .. đây là yêu cầu đầy đủ của tôi

Cảm ơn bạn đã giúp tôi gỡ lỗi này.

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); 
    }); 
+0

cách vượt qua nhiều tiêu đề tùy chỉnh trong các trục –

-1

Thực tế vấn đề này gây ra trong xcode không hỗ trợ yêu cầu http tại localy.

bạn có thể thêm mã này trong file plist

<key>NSAppTransportSecurity</key> 
    <dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
    </dic> 
Các vấn đề liên quan