提问者:小点点

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


我已经基于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身份验证中,失败的登录尝试,注销等如何处理?是否返回状态代码,返回新标记,更新视图的一部分?


  • 共1个答案

    匿名用户

    我将结束这个问题,因为我做了一些研究,我最初的问题是因为我对phonegap应用程序的架构缺乏了解。我没有意识到我需要遵循单页应用程序架构与传统的网页模型。