我已经基于node.js,express.js和本地护照建立了一个基本的node.js用户身份验证系统。
我将用户名和密码存储在mysql数据库中,并使用mongo持久存储会话。我现在要移动用户注册并登录到phonegap。
根据我在网上找到的教程,看来可行的唯一方法是AJAX用户身份验证。但是我有两个问题:
由于passport.js依赖重定向,我该如何重写快递路线以响应JSON?
// 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:'电子邮件',
passwordField:'密码',
passReqToCallback:是
},
功能(要求,电子邮件,密码,完成){
...
查询数据库的其余代码
也用于登录
//配置护照本地登录策略
护照。使用(新的LocalStrategy(
功能(用户名,密码完成){
var query ='select * from users where email ='+ connection.escape(username);
connection.query(query,function(err,user){
如果(err){返回完成(err);
...其余代码
}
PhoneGap中的AJAX身份验证是否可以通过将帖子发送到/login
并因此在快递服务器中创建新的活动会话来工作?
如何处理客户端中的状态。在普通的webapp中,您将重定向用于ie。失败的登录尝试,注销等。在AJAX身份验证中,您如何处理?您是否返回状态码,返回新标记,更新视图的一部分?最佳答案
在进行一些研究时,我将结束这个问题,而最初的问题是由于我对Phonegap应用程序的构建方式缺乏了解。我不知道我需要遵循单页应用程序体系结构还是传统的网页模型。