我想用passport.js进行ajax登录.我有通常的代码来设置passport.js:
//route app.post('/api/auth/login',passport.authenticate('local-login',{ successRedirect: '/',failureRedirect: '/login' })); //config strategy passport.use('local-login',new LocalStrategy({ usernameField: 'email',passwordField: 'password',passReqToCallback: true },loginUser)); var loginUser = function(req,email,password,done) { UserRepo.getone({ 'local.email': email }).done(function(user) { if (!user || !user.validPassword(password)) { return done(null,false,{ message: 'user or password is incorrect' }); } return done(null,user); },function(err) { return done(err); }); };
这是我的反应组件:
var Login = React.createClass({ //... handleSubmit: function (e) { e.preventDefault(); var email = this.state.email.trim(); var password = this.state.password.trim(); var data = { email: email,password: password }; api.auth.login(data,function (result) { console.log(result); }); },render: function () { return ( <form className="login-form" onSubmit={this.handleSubmit}> <section> <label>email</label> <input name="email" type="text" /> <label>password</label> <input name="password" type="password" /> </section> <section> <input type="submit" value="send"/> </section> </form> ); } //... })
但是,它不起作用,因为重定向(successRedirect和failureRedirect)可以完成它们的工作.如果我删除failureRedirect,我将获得401状态.我理解我的服务器端渲染和页面刷新的护照代码,但我找不到ajax登录的任何文档.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。