Как использовать LinkedIn api с Node js - PullRequest
0 голосов
/ 03 августа 2020

Все, что мне нужно, это проверить на стороне сервера, действителен ли токен доступа пользователя, и получить адрес электронной почты пользователя по его токену доступа. Трудно понять, как использовать эту npm библиотеку для этих целей, поэтому, пожалуйста, помогите мне. В документации я нашел для него адрес API, но как получить его с идентификатором клиента и секретом клиента моего приложения, которое я создал на https://www.linkedin.com/developers/apps/new.. Надеюсь, мой вопрос имеет смысл, заранее спасибо <3 </p>

1 Ответ

0 голосов
/ 03 августа 2020
var passport = require('passport');
var LinkedInStrategy = require('passport-linkedin-oauth2').Strategy;

// linkedin app settings
var LINKEDIN_CLIENT_ID = "CLIENT_ID_HERE";
var LINKEDIN_CLIENT_SECRET = "CLIENT_SECRET_HERE";
var Linkedin = require('node-linkedin')(LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET);

passport.serializeUser(function (user, done) {
    done(null, user);
});

passport.deserializeUser(function (obj, done) {
    done(null, obj);
});

passport.use(new LinkedInStrategy({
    clientID: LINKEDIN_CLIENT_ID,
    clientSecret: LINKEDIN_CLIENT_SECRET,
    callbackURL: "http://127.0.0.1:3000/auth/linkedin/callback",
    scope: ['r_emailaddress', 'r_basicprofile', 'rw_company_admin'],
    passReqToCallback: true
},
function (req, accessToken, refreshToken, profile, done) {
    req.session.accessToken = accessToken;
    process.nextTick(function () {
        return done(null, profile);
    });
}));

// for auth

app.get('/auth/linkedin',
  passport.authenticate('linkedin', { state: 'SOME STATE'  }),
  function(req, res){
    // The request will be redirected to LinkedIn for authentication, so this
    // function will not be called.
});

// for callback

app.get('/auth/linkedin/callback', passport.authenticate('linkedin', { failureRedirect: '/' }),
function (req, res) {
    res.redirect('/');
});

Это фрагмент кода того, как я его использовал, я думаю, он поможет вам при загрузке с CLIENT_ID и CLIENT_SECRET.

Примечание: npm паспорт и паспорт-linkedin-oauth2 должны уже установлено

...