phonegap使用nodejs-expresss-mongo-passportjs进行ajax用户身份验证

时间:2014-03-24 08:26:06

标签: cordova express passport.js

我已经基于node.js,express.js,passport-local构建了一个基本的node.js用户认证系统。

我将用户名和密码存储在mysql数据库中,并使用mongo进行会话的持久存储。我现在想要移动用户注册并登录phonegap。

从我在网上找到的教程中,唯一可行的方法是AJAX用户身份验证。但是我有两个问题:

  1. 如何重写快速路由以响应JSON,因为passport.js依赖于重定向?

    // 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
    }));
    

    and in my strategies I have :
    passport.use('local-signup', new LocalStrategy({ usernameField : 'email', passwordField : 'password', passReqToCallback : true }, function(req, email, password, done) { ... rest of the code that queries the db

    also for login
    //Configure passport Local Strategy for login passport.use(new LocalStrategy( function(username, password, done) { var query = 'select * from users where email = '+ connection.escape(username); connection.query(query, function (err, user) { if (err) { return done(err); ... rest of code }

  2. 2.通过向' / login'发送帖子,可以在PhoneGap中进行AJAX身份验证。因此在快递服务器中创建一个新的活动会话?

    3.如何在客户端处理状态。在正常的Web应用程序中,您使用重定向即ie。失败的登录尝试,注销等。在AJAX身份验证中,您如何处理?您是否返回状态代码,返回新标记,更新视图的一部分?

1 个答案:

答案 0 :(得分:3)

我会在进行一些研究时关闭这个问题,而我最初的问题是由于我对如何构建phonegap应用程序缺乏了解。我不知道我需要遵循单页面应用程序架构与传统网页模型。