我已经基于node.js,express.js,passport-local构建了一个基本的node.js用户身份验证系统。
我将用户名和密码存储在mysql数据库中,并使用mongo对会话进行持久存储。我现在想把用户注册和登录移动到PhoneGap。
从我在网上找到的教程中,唯一有效的方法是AJAX用户身份验证。然而,我有两个问题:
>
既然passport.js依赖重定向,我如何重写快速路由以响应JSON?
null
// process the signup form app.post('/register', passport.authenticate('local-signup', { successRedirect : '/home', failureRedirect : '/register', failureFlash : true // allow flash messages }));// process the login form app.post('/login', passport.authenticate('local', { successRedirect : '/home', failureRedirect : '/login', failureFlash : true // allow flash messages }));
在我的策略中,我有:
passport.use(“local-signup”,new LocalStrategy({ usernameField:“email”, passwordField:“password”, passReqToCallback:true }, 函数(请求,电子邮件,密码,完成){ 。。。 查询数据库的其余代码也用于登录
//配置passport本地登录策略 passport.use(新的本地策略( 函数(用户名,密码,完成){ var query='select*from users where email='+connection.escape(用户名); Connection.query(查询,函数(错误,用户)){ if(err){return done(err); …其余代码 }null
通过向
/login
发送post并因此在express服务器中创建新的活动会话,PhoneGap中的AJAX身份验证是否可以工作?如何在客户端中处理状态。在一个普通的webapp你使用重定向为IE。在AJAX身份验证中,失败的登录尝试,注销等如何处理?是否返回状态代码,返回新标记,更新视图的一部分?
我将结束这个问题,因为我做了一些研究,我最初的问题是因为我对phonegap应用程序的架构缺乏了解。我没有意识到我需要遵循单页应用程序架构与传统的网页模型。