首页 > 解决方案 > Express Simple Auth 不起作用

问题描述

我做了一个简单的登录 api,无论我作为参数发送什么,它都无法正常工作,这是我的用户模式:

var mongoose = require('mongoose');
var userSchema = mongoose.Schema({
  username: {type: String, required: true , unique: true},
  password: {type: String, required: true}
});

module.exports = mongoose.model('User', userSchema);

这是我的代码:

router.post('/login', (req,res,next) => {
  var usern = req.body.username;
  var passw = req.body.password;
  console.log(usern + " " + passw);
  if ( !usern || !passw ) {
    return res.status(400).json({'error': 'Bad Request'});
  } else {
    User.findOne({username: req.body.username},(user , err)=> {
      if (!user) {
        return res.status(404).json({'error': 'No User Found'});
      } else if (user.password !== req.body.password ) {
        return res.status(401).json({'error': 'Auth Failed'});
      } else {
        return res.status(200).json({
          'success': 'true'
        });
      }
    });
  }
});

提前致谢!

标签: node.jsapiexpressauthenticationlogin

解决方案


我用这个在我的,

public function authenticate(Request $request){
$authResult=Auth::attempt(['username'=>$request['username'],'password'=>$request['password']]);
 if($authResult){
return redirect()->intended();
  }
 else{
return redirect()->to(route('login'));
}

推荐阅读