我正在努力了解如何将护照与护照一起使用:
我理解以下内容。
我创建了一个策略:
passport.use(new FacebookStrategy({
clientID: 'x',
clientSecret: 'x',
callbackURL: '/auth/facebook/callback',
profileFields: ['id', 'displayName', 'photos', 'emails'],
session: false,
}, async (token, tokenSecret, profile, done) => {
// find or create new user here and return
done(null, user);
}));
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password',
session: false,
}, async (email, password, done) => {
// find or create new user here and return
done(null, user);
}));
如何在服务器上的传入套接字中使用它?
.on('sign-in', (data) => {
passport.authenticate('local', function (err, user, info) {
//do stuff?
})(req, res, next);
socket.emit('sign-in', response); // <-- back to the client
})
.on('public-route', (data) => {
// all websocket clients should be able to access this
})
.on('private-route', (data) => {
// only authenticated websocket clients should access this
})
我不明白它如何与websockets一起使用。以下是我对流程的看法。
这有点像我脑海中的形象。我只是没有看到passport.js适合任何地方。除了两个数组之外,我也不太了解如何处理经过身份验证和未经身份验证的websockets。
我非常接近于实施我自己的身份验证/授权,但我更倾向于使用经过试验和测试的方法,因此使用passport.js。
我希望这个问题有道理,告诉它是否有效,我会重构!