Sails.js 来自服务器端表单的Waterlocks身份验证

Sails.js 来自服务器端表单的Waterlocks身份验证,sails.js,waterlock,Sails.js,Waterlock,我和沃特里克本地授权有问题。基本上,我整天都在和waterlock玩,试图弄清楚如何创建一个新用户(使用哈希密码和all),以及如何从服务器端sails.js视图上的表单对用户进行身份验证。但都完全失败了。下面是我的登录表单发布到的登录控制器中的代码。任何帮助都将不胜感激。谢谢 module.exports = { login: function(req, res) { var isAuthenticated = function(){...} <-- Authenticated

我和沃特里克本地授权有问题。基本上,我整天都在和waterlock玩,试图弄清楚如何创建一个新用户(使用哈希密码和all),以及如何从服务器端sails.js视图上的表单对用户进行身份验证。但都完全失败了。下面是我的登录表单发布到的登录控制器中的代码。任何帮助都将不胜感激。谢谢

module.exports = {
login: function(req, res) {

    var isAuthenticated = function(){...} <-- Authenticated by waterlocks

    if(isAuthenticated) {
        res.view('home');        
    }
    else {
        res.view('login', {errorMessage: "Invalid username or password"});
    }
}
module.exports={
登录:功能(req、res){

var isAuthenticated=function(){…}Ok,所以基本上我使用了这里发布的解决方案();0)


})

好的,所以基本上我采用了这里发布的解决方案();0)


}))

我认为你应该发布你的isAuthenticated函数的样子。我同意Martin的观点。问题似乎出在您的isAuthenticated函数中。我认为您应该发布isAuthenticated函数的外观。我同意Martin的观点。问题似乎出在您的isAuthenticated函数中。
module.exports = require('waterlock').waterlocked({ 


 // Endpoint for registering new users. Taken from: https://stackoverflow.com/questions/29944905/sails-js-waterlock-auth-register-causes-error-500/29949255#29949255 
 register: function (req, res) { 

     var params = req.params.all(), 
         def = waterlock.Auth.definition, 
         criteria = {}, 
         scopeKey = def.email !== undefined ? 'email' : 'username'; // Determines if the credentials are using username or emailaddess. 


     var attr = { password: params.password } 


     attr[scopeKey] = params[scopeKey]; 
     criteria[scopeKey] = attr[scopeKey]; 


     waterlock.engine.findAuth(criteria, function (err, user) { 
         if (user) 
             return res.badRequest("User already exists"); 
         else 
             waterlock.engine.findOrCreateAuth(criteria, attr, function (err, user) { 
                 if (err) 
                     return res.badRequest(err); 
                 delete user.password; 
                 return res.ok(user); 
             }); 
     }); 
 }