2017-01-27 7 views
0

人。私はNodeJSの残りのAPIにa以上のエラーがあり、これを解決できません。JSONの位置0の予期しないトークンN

私のアイデアはgithubのログインです。このアプリはこのように動作します。

コールバックで一時的なコードを返すgithub urlへのHref。

この一時コードをREST APIに送信し、残りのAPIをgithub apiの別のエンドポイントにフェッチ要求します。このエンドポイントはaccess_token=12345を返します(このアクセストークンは一例です)。 JWTトークンでトークンを変換し、フロントエンドに送信して、後でlocalStorageに格納して使用することもできます。

NodeJS

router.post("https://stackoverflow.com/users/github/:code",function(req,res){ 
 
    fetch('https://github.com/login/oauth/access_token/', { 
 
     method: 'GET', 
 
     client_id: 'xxxx', 
 
     client_secret: 'xxxx', 
 
     code: req.params.code, 
 
     accept: 'json', 
 
    }) 
 
    .then(function(res) { 
 
     return res.json(); 
 
    }).then(function(json) { 
 
     console.log(json); 
 
    }); 
 
    
 
});

PDでの私のコード:私はこのためにnode-fetchモジュールを使用しています。 「アプリケーション/ json'`を:https://www.npmjs.com/package/node-fetch

+2

は、それが受け入れ 'すべきではありませんか?また、あなたの約束手続きの中で 'res'をシャドーイングしています。それが機能しないわけではなく、あなたがそのように影を描くときに使用する変数を使用していることに注意してください。 – cdhowie

答えて

0

ソリューション

router.post("https://stackoverflow.com/users/github/:code",function(req,res){ 
 
    fetch('https://github.com/login/oauth/access_token/', { 
 
     method: 'POST', 
 
     headers: { 
 
     Accept: 'application/json', 
 
     'Content-Type': 'application/json' 
 
    }, 
 
    body: JSON.stringify({ 
 
     client_id: 'xxxx', 
 
     client_secret: 'xxxx', 
 
     code: req.params.code 
 
    }) 
 
}).then(function(res) { 
 
    return res.json(); 
 
}).then(function(body) { 
 
    res.json(body); 
 
    }); 
 
});

関連する問題