javascriptangularjslinkedin-apisatellizer

Linkedin authentication using AngularJS Satellizer module


I am using Satellizer module for Social Login & Signup. I am able to authenticate Instagram but during Linkedin authentication process, I am getting following error -

{ 
  error_description: 'missing required parameters, includes an invalid parameter value, parameter more than once. : client_secret',
  error: 'invalid_request' 
}

I have checked numerous times but could not get this resolved. Below is the code I am using-

var accessTokenUrl = 'https://www.linkedin.com/uas/oauth2/accessToken';
var peopleApiUrl = 'https://api.linkedin.com/v1/people/~:(id,first-name,last-name,email-address,picture-url,headline,location,industry,summary,specialties,positions,picture-urls::(original))';

var params = {
    client_id: req.body.clientId,
    client_secret: CLIENT_SECRET,
    code: req.body.code,
    redirect_uri: req.body.redirectUri,
    grant_type: 'authorization_code'
};
request.post(accessTokenUrl, {form: params, json: true }, function (err, response, body) {

    if (response.statusCode !== 200) {
        return res.status(response.statusCode).send({message: body.error_description});
    }
    var params = {
        oauth2_access_token: body.access_token,
        format: 'json'
    };
  // Other relevant code
 });

Solution

  • Try using set content type header for request Content-Type: application/x-www-form-urlencoded.

    From LinkedIn

    POST /oauth/v2/accessToken HTTP/1.1
        Host: www.linkedin.com
        Content-Type: application/x-www-form-urlencoded
    
        grant_type=authorization_code&code=987654321&redirect_uri=https%3A%2F%2Fwww.myapp.com%2Fauth%2Flinkedin&client_id=123456789&client_secret=shhdonottell