我对Nodejs / ExpressJS相当新,但我在ROR的Web后端开发方面有足够的经验。
我使用本地护照在Node / Express中创建了一个小型Web应用程序。因为我使用的是Mongodb,所以甚至还有一个插件https://github.com/saintedlama/passport-local-mongoose。我用过这个。
var User = new Schema({
username: String,
password: String,
});
我能够注册/登录/注销。所以一个基本的应用程序正在运作。
现在我的问题是,如果我只有local
身份验证方法,那么使用护照就好了。(不需要社交登录)。
这意味着仅使用express and mongoose
进行身份验证,不需要额外的插件。
如果是,我怎么才能使用这些,任何来源或提示进行身份验证?
如果我必须使用护照(或者你推荐护照,因为这支持认证中间件,我虽然不确定),我怎么能忽略passport-local-mongoose
来创建用户模型和使用护照和快递认证。
答案 0 :(得分:1)
您可以为护照编写自己的身份验证处理程序,该处理程序与包含您登录信息的任何来源相关联。
// And this handler to your local strategy initialization
var localStrategyHandler = function (email, password, done) {
// Here you can write any function which validates the email and password against the storage yo've used
Accounts.getAccount(username, password).then(function (account) {
if (account !== null) {
return done(null, account); // If login attempt was successfull return a user object using the done callback
} else {
return done(null, false, 'ACCOUNT_NOT_FOUND'); // If login failed return a failure like this example
}
}).catch(function (error) {
return done('LOGIN_ERROR');
});
};
// Thats how you initilize a strategyHandler
passport.use(new LocalStrategy(localStrategyHandler));
函数done
是触发护照进一步行为的回调方法。