簡體   English   中英

無法使用 axios 獲取linkedin 的訪問令牌

[英]Unable to get access token for linkedin using axios

我正在嘗試按照Linkedin Oauth中描述的步驟獲取訪問令牌。 我正在嘗試在獲取訪問令牌的過程中執行步驟 2。 我將 Axios 用於 POST 請求。 這是我正在使用的代碼(出於安全原因,客戶端密碼和 id 不是真實的):

    const axios = require('axios');
    const qs = require('qs');
    axios({
        method: 'post',
        url: 'https://www.linkedin.com/oauth/v2/accessToken',   
        data: qs.stringify({
            grant_type: 'authorization_code',
            code: 'AQSow7V6s2F2koWzIsnVKcQGt_cHtsM1F3FHZOrEV0UY1KIFkWiFJpi8dt1NtjuZMOO6-NStoCjTf58awk6GBcH2XQRctt7IBtel4Oeop5yVIBqiedk8qxlIlbkMxlfGg1gCVoupXL6xUc3-jegKYDPSe0rl4mygdpIzGdej2_hhJ827vJcojtvaMXCCGw',
            redirect_uri: 'https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Ftttrrr878',
            client_id: '99blt2z20qlm3d',
            client_secret: 'fGGgdqqcx5t3cRfw'       
        }),
        headers: {
            content-type: 'application/x-www-form-urlencoded;charset=utf-8'
        }
        }).then(result => { 
            console.log(result.data);
        }).catch(error => { 
            console.log(error);
        });

即使在確保code未過期(在 30 分鍾過期時間之前)之后運行代碼,我也會收到以下錯誤:

data: {
      error: 'invalid_redirect_uri',
      error_description: 'Unable to retrieve access token: appid/redirect uri/code verifier does not match authorization code. Or authorization code expired. Or external member binding exists'
    }

但是,當我在命令行中使用 curl 執行相同操作時,如下所示,我可以獲得訪問代碼:

curl -ik -X POST https://www.linkedin.com/oauth/v2/accessToken \
-d grant_type=authorization_code \
-d code=AQSow7V6s2F2koWzIsnVKcQGt_cHtsM1F3FHZOrEV0UY1KIFkWiFJpi8dt1NtjuZMOO6-NStoCjTf58awk6GBcH2XQRctt7IBtel4Oeop5yVIBqiedk8qxlIlbkMxlfGg1gCVoupXL6xUc3-jegKYDPSe0rl4mygdpIzGdej2_hhJ827vJcojtvaMXCCGw \
-d redirect_uri=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Ftttrrr878 \
-d client_id=99blt2z20qlm3d \
-d client_secret=fGGgdqqcx5t3cRfw

知道為什么會這樣嗎? 它與這個問題有某種關系嗎?

您的代碼看起來正確。 問題是因為您是 url 編碼redirect_uri參數,刪除它,它應該工作。

您只需要在從瀏覽器對訪問代碼進行初始請求時,對 redirect_uri 參數進行編碼即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM