#node.js #angular #authentication #passport.js #linkedin-api
Вопрос:
поэтому я пытался реализовать вход в систему с помощью linkedin в своем приложении, и я не смог найти в Интернете ничего, что могло бы показать мне шаги от А до Я. Я реализовал бэкэнд и интерфейс отдельно, однако я не знаю, как связать их вместе
В бэкэнде я использую passportjs
Итак, вот что я сделал до сих пор:
внешний интерфейс
app.component.html
<button click="loginWithLinkedin()">Linkedin</button>
приложение.компонент.ts
window.location.href = `https://www.linkedin.com/uas/oauth2/authorization?response_type=codeamp;state=trueamp;client_id=${environment.LINKEDIN_API_KEY}amp;redirect_uri=${environment.LINKEDIN_REDIRECT_URL}amp;scope=${environment.LINKEDIN_SCOPE}`;
перенаправление.компонент.ts
const linkedInToken = this.route.snapshot.queryParams["code"];
this.http.get('http://localhost:3000/user/auth/linkedin',
{ params: { token: linkedinToken }}).subscribe(res => {
console.log(res);
});
бэкэнд
passport.use(new LinkedInStrategy({
clientID: LINKEDIN_CLIENT_ID,
clientSecret: LINKEDIN_CLIENT_SECRET,
callbackURL: "http://127.0.0.1:8000/user/auth/linkedin/callback",
scope: ['r_emailaddress', 'r_basicprofile'],
passReqToCallback: true
},
function (req, accessToken, refreshToken, profile, done) {
req.session.accessToken = accessToken;
process.nextTick(function () {
return done(null, profile);
});
}));
linkedinRouter.route('/auth/linkedin')
.get(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.
});
linkedinRouter.route('/auth/linkedin/callback')
.get( passport.authenticate('linkedin', { failureRedirect: '/' }),
function (req, res) {
return res.send('hello');
});
Я не понимаю, как будет работать паспорт, и я не понимаю, как связать бэкэнд и интерфейс.
Я не знаю, является ли это правильным способом реализации аутентификации linkedin
Если у вас есть какие-либо статьи, которые могли бы помочь, или если вы можете исправить это, это действительно помогло бы, я застрял на пару дней.
Большое спасибо
Ответ №1:
Я приношу извинения, если я неправильно сформулировал вопрос или не знал, как задать его. Тем не менее, мне удалось заставить его работать, и я написал об этом среднюю статью. вот ссылка: https://nour-karoui.medium.com/linkedin-authentication-for-a-mean-stack-application-bd8542b2dc7f
Я надеюсь, что это может кому-то помочь !