我已经基于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应用程序的构建方式缺乏了解。我不知道我需要遵循单页应用程序体系结构还是传统的网页模型。

07-24 09:52
查看更多