【发布时间】:2014-05-01 12:09:45
【问题描述】:
我已经基于node.js、express.js、passport-local搭建了一个基本的node.js用户认证系统。
我将我的用户名和密码存储在 mysql 数据库中,并使用 mongo 来持久存储会话。我现在想将用户注册和登录移动到 phonegap。
从我在网上找到的教程看来,唯一可行的方法是 AJAX 用户身份验证。但是我有两个问题:
-
由于 passport.js 依赖重定向,我如何重写快速路由以响应 JSON?
// 处理注册表单 app.post('/register', passport.authenticate('local-signup', { 成功重定向:'/home', failureRedirect : '/注册', failureFlash : true // 允许 flash 消息 }));// 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({ 用户名字段:'电子邮件', 密码字段:'密码', passReqToCallback : 真 }, 功能(请求,电子邮件,密码,完成){ ... 查询数据库的其余代码也用于登录
//配置passport本地登录策略 护照.使用(新的本地策略( 功能(用户名,密码,完成){ var query = 'select * from users where email = '+ connection.escape(username); connection.query(查询,功能(错误,用户){ if (err) { return done(err); ...其余代码 } PhoneGap 中的 AJAX 身份验证是否会通过向
/login发送帖子并因此在快速服务器中创建新的活动会话来工作?如何处理客户端中的状态。在普通的 web 应用程序中,您使用重定向 ie。登录尝试、注销等失败。在 AJAX 身份验证中,您如何处理?您是否返回状态码、返回新标记、更新部分视图?
【问题讨论】:
标签: cordova express passport.js