Как аутентифицировать LinkedIn, используя Node.js и simple-oauth2 - PullRequest
0 голосов
/ 28 ноября 2018

Я пишу приложение node.js для аутентификации в LinkedIn, и оно не работает.Проблема в том, что я перенаправляю (как представляется) правильный URL-адрес, но вместо того, чтобы перенаправить его на страницу, которая запрашивает у пользователя авторизацию его учетных данных, я получаю сообщение «страница не найдена».

Я создал LinkedIn "App".Ниже приведены мои «URL авторизованного перенаправления»:

enter image description here

HTML

  <div id="root">
        <button id="auth-button"> Login </button>
  </div>

КлиентJS

function onSignInButtonClick() {
  // Open the Auth flow in a popup.
  window.open('/redirect', 'firebaseAuth', 'height=315,width=400');
};

var button = document.getElementById("auth-button");

button.addEventListener("click",function(){
    onSignInButtonClick();
});

Код сервера

const credentials = {
 client: {
   id: "LINKEDIN_CLIENT_ID-1-2-3-4", 
   secret: "LINKEDIN_CLIENT_SECRET-1-2-3-4", 
 },
 auth: {
   tokenHost: 'https://www.linkedin.com/oauth/v2/authorization'
 }
};


const oauth2 = require('simple-oauth2').create(credentials);

var express = require("express");
var app = express();
app.use(express.static("public"));


app.get('/', (req, res) => {

   res.sendFile('landing.html',{
      root:'public'
   })

});




app.get('/redirect', (req, res) => {

  const redirectUri = oauth2.authorizationCode.authorizeURL({
    response_type:"code",
    redirect_uri: "http://www.localhost:3000/callback",
    state: "some-cryptic-stuff-98471871987981247"
  });

  res.redirect(redirectUri);
});


app.get('/callback',(req, res) => {
  console.log("linkedin-callback route invoked");

  res.send("linked in callback working")

});


app.listen(3000, function(err) {
    console.log('Server works');
});

Когда пользователь нажимает кнопку, он перенаправляется на URL, который по структуре идентичен URLэто дано как «образец вызова» (ниже) в справочнике разработчика LinkedIn.

https://developer.linkedin.com/docs/oauth2#

enter image description here

Однако вместо этоговидя подсказку на изображении выше, мой код дает им это:

enter image description here

1 Ответ

0 голосов
/ 28 ноября 2018

redirect_uri, который вы зарегистрировали в LinkedIn (http://localhost:3000/callback), отличается от того, что вы фактически отправляете (http://www.localhost:3000/callback).Это может быть проблемой, поскольку она вызывает invalid redirect_uri error.

...