(Nodejs) Google oAuth2: Required parameter is missing: grant_type

Refresh

November 2018

Views

2.7k time

2

Using Nodejs and Mikeal's Request to make this call. Doing everything the docs are saying to do here including the grant_type=authorization_code but I still keep getting the same error. See screenshot for the exact variables and methods I'm passing.

Screenshot of error

Here's what the path looks like with grant_type explicitly set first

/o/oauth2/token?grant_type=authorization_code&code=4%2F42sz3xxq4wGF9k9joYxRVop9mHi6.UpFaIUqZ_UQaaDn_6y0ZQNh869DgiwI&client_id=199079322117.apps.googleusercontent.com&client_secret=...&redirect_uri=...

2 answers

0
Yeah I know its a very old question but I faced the same problem today.
and resolved the  issue as follow. 
if you use form option it will automatically set content type
appticationx-ww-orm-urtencoded



  var request = require('request');
  request.post('https://accounts.google.com/o/oauth2/token',
      {
          form: {
              code: authorization code, // which you get from google 
              client_secret: 'client secret',// its your app secret
              client_id: 'client id', //app client id
              grant_type: 'authorization_code',
              redirect_uri: 'https://developers.google.com/oauthplayground' //this should match the redirect uri which you give while creating the client id
          }
     },function(err,res,body){
         console.log(body);
         if(err) console.log(err);
         //console.log(res);
     });
1

Оказывается, отправка редирект URI в запросе начальной OAuth необходимо для того, чтобы иметь что-то, чтобы соответствовать против при обмене жетонов.

Сообщение моего ответа здесь объяснить , как я закончил того , чтобы создать свой собственный поток пользователей OAuth с всплывающими окнами (вместо того , чтобы перенаправлять пользователь в главном приложении) Узел Google OAuth2 redirect_uri_mismatch