在平均堆栈应用程序中使用 linkedin 进行身份验证

Authentication using linkedin in a mean stack application

所以我一直在尝试在我的应用程序中使用 linkedin 实现 login,但我在网上找不到任何可以向我展示以下步骤的内容从头到尾 我实现了 backendfrontend separateley,但是,我不知道如何 link他们在一起

在后端,我使用的是 passportjs

这是我到目前为止所做的:

前端

app.component.html

<button click="loginWithLinkedin()">Linkedin</button>

app.component.ts

window.location.href = `https://www.linkedin.com/uas/oauth2/authorization?response_type=code&state=true&client_id=${environment.LINKEDIN_API_KEY}&redirect_uri=${environment.LINKEDIN_REDIRECT_URL}&scope=${environment.LINKEDIN_SCOPE}`;

redirect.component.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');
    });

我不明白护照是如何工作的,我也不明白如何 link 后端和前端。 我不知道这是否是实施 linkedin 身份验证

的正确方法

如果您有任何可以指导的文章,或者如果您可以更正那真的很有帮助,我已经被困了几天了。

非常感谢

如果我以错误的方式提出问题或者我不知道如何提出问题,我深表歉意。但是,我设法使它工作,并写了一篇关于它的中型文章。 这是 link: https://nour-karoui.medium.com/linkedin-authentication-for-a-mean-stack-application-bd8542b2dc7f

我希望它可以帮助那里的人!