在平均堆栈应用程序中使用 linkedin 进行身份验证
Authentication using linkedin in a mean stack application
所以我一直在尝试在我的应用程序中使用 linkedin 实现 login,但我在网上找不到任何可以向我展示以下步骤的内容从头到尾
我实现了 backend 和 frontend 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
我希望它可以帮助那里的人!
所以我一直在尝试在我的应用程序中使用 linkedin 实现 login,但我在网上找不到任何可以向我展示以下步骤的内容从头到尾 我实现了 backend 和 frontend 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
我希望它可以帮助那里的人!