【问题标题】:Nodejs: Passport-local vs custom user authNodejs:护照本地与自定义用户身份验证
【发布时间】:2016-02-29 08:15:49
【问题描述】:

我对 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 以使用护照创建用户模型和身份验证和仅快递。

【问题讨论】:

    标签: node.js express mongoose passport.js passport-local


    【解决方案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是触发护照进一步行为的回调方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-19
      • 2013-06-28
      • 2016-10-29
      • 2014-03-17
      • 2016-10-19
      • 1970-01-01
      • 2021-06-14
      相关资源
      最近更新 更多