React & Express - Авторизация пользователя не работает - PullRequest
0 голосов
/ 04 мая 2020

Для веб-приложения, над которым я работаю, я пытаюсь создать функцию входа в систему.

В моей базе данных хранится пользователь, и я хочу отобразить «Logged In», если используются его учетные данные, и «Not Logged In», если используются любые другие учетные данные.

Вот мой компонент React:

export default class Account extends React.Component {
    constructor() {
        super();
        this.state = {
          isLoggedIn: false,
        };
        this.login = this.login.bind(this);
      }
      componentWillMount() {
        this.login();
      }
      login () {
        const cookies = new Cookies();
        const user = cookies.get('user');
        const pass = cookies.get('pass');
        fetch(`http://localhost:3001/user/login/${user}/${pass}`)
        .then(res => res.json())
        .then(json => {
          if(json.success) {
            this.setState ({
              isLoggedIn: true
            })
          }
        })
      }

    render() {
      if(this.state.isLoggedIn) {
        return (<p> True</p>);
      }
      else {
        return (<p> False</p>);
      }
    }
}

Вот мой express компонент:

/**
 * POST /user/login -> Log in
 */
router.post('/login/:user/:pass', (req, res) => {

  return User
    .findOne({username: req.param('user')})
    .then (user => user.authenticate(req.param('pass')))
    .then (auth => {
      if (auth.user !== false) {
        req.session.user = auth.user.id
      }
      res.json({success: auth.user !== false})
    })
    .catch(() => res
      .status(500)
      .json({success: false})
    );
});

module.exports = router;

В результате isLoggedIn остается ложным, независимо от того, что.

...