使用 AngularJS Satellizer 模块的 Linkedin 身份验证

Linkedin authentication using AngularJS Satellizer module

我正在使用 Satellizer 模块进行社交登录和注册。 我可以对 Instagram 进行身份验证,但在 Linkedin 身份验证过程中,出现以下错误 -

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

我已经检查了很多次,但无法解决这个问题。 下面是我使用的代码-

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
 });

尝试为请求 Content-Type: application/x-www-form-urlencoded 使用设置内容类型 header。

来自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