1

ノードサーバーで、Googleユーザーを検証しようとしていますが、常に「不良リクエスト」が返されます。私のコードで何が間違っていますか?ノードJSのGoogleトークンで認証できません

var post_data = querystring.stringify({ 
    'alt': 'json', 
    'access_token': <token from REST API params> 
}); 

var post_options = { 
    host: 'www.googleapis.com', 
    port: '443', 
    path: '/oauth2/v1/userinfo', 
    method: 'GET', 
    headers: { 
     'Content-Length': Buffer.byteLength(post_data) 
    } 
}; 

var post_req = https.request(post_options, function (result) { 
    if (result.statusCode == 200) { 
     result.on('data', function (chunk) { 
      //Valid user stuff 
     }); 
    } 
    else { 
     //Invalid user stuff 
    } 
}); 

post_req.write(post_data); 
post_req.end(); 

私のクライアントアプリケーションは、トークンを正常に取得するクロム拡張機能です。トークンは、ノードサーバー上でホストされているREST APIに渡されます。私はそのトークンを再生してGoogleユーザーを認証しようとします。 (Chrome拡張機能のトークンを使用して同じリクエストを行うと、成功し、プロファイル情報が取得されますが、これは失敗したノードサーバー上のリクエストのみです)。お願いします?

答えて

0

問題は、あなたがしていることである。hostの代わりhostname

  • portパラメータを提供するプロパティを使用して

    • (これについてはよく分からないが、それはそれなしで動作します)
    • メソッド必要があります、あなたの新しい、ではないので、GET

    こと210オブジェクトは、次のようになります。

    var post_options = { 
        hostname: 'www.googleapis.com', 
        path: '/oauth2/v1/userinfo', 
        method: 'POST', 
        headers: { 
         'Content-Length': Buffer.byteLength(post_data) 
        } 
    }; 
    

    あなたはそれが簡単にあなた自身にあなたがそのようなgoogle-auth-librarygoogle-sign-inとしてモジュールを使用することができますしたい場合。

  • 関連する問題