Для веб-приложения, над которым я работаю, я пытаюсь создать функцию входа в систему.
В моей базе данных хранится пользователь, и я хочу отобразить «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
остается ложным, независимо от того, что.