#express #react-redux #axios #passport.js #passport-local-mongoose
Вопрос:
Я использую Passport для аутентификации и passport-local-мангуст для пользователей плагинов. Когда я попытаюсь войти и зарегистрироваться с помощью почтальона, это будет успешно. Я вхожу в систему и получаю пользователя. Но я отправляю с axios ( я использую стек mern ) каждый раз, когда получаю только одну ошибку: POST http://localhost:3001/api/users/login 401 (Unauthorized)
и я использую redux, и как отправить ошибку 401 в express на серверную часть?
это
это ссылка: https://github.com/Feruz00/travel-mern-app/tree/master
войдите в систему и зарегистрируйтесь
router.post('/register', async (req, res) => {
await User.register( {email: req.body.email}, req.body.password, (err,user)=>{
if(err) return res.json({ success: false, err }); // How to send error ?
else res.status(200).json({
success: true
});
});
});
router.post("/login", function (req, res) {
passport.authenticate("local")(req, res, function () {
res.json({
loginSuccess: true
});
});
res.status(401).json({ // How to send this or error ?
loginSuccess: false
})
});
это интерфейс, когда я отправляю данные на серверную часть:
export const User_Login = (value) => async (dispatch) =>{
dispatch({type: user_login_request});
await axios.post('http://localhost:3001/api/users/login', value)
.then(res => {
if(res.status === 200){
dispatch({type: user_login_success, payload: res.data});
}
else{
dispatch( {type: user_login_fail, payload: "Invalid email or password"} );
}
})
.catch(error =>{
console.log(error.status);
dispatch({type:user_login_fail, payload:error.message})
})
}
export const User_Register = (value) => async (dispatch) =>{
dispatch({type: user_register_request});
await axios.post('http://localhost:3001/api/users/login', value)
.then(res => {
if(res.status === 200){
dispatch({type: user_register_success, payload: res.data});
}
else{
dispatch( {type: user_register_fail, payload: "Email already exits"} );
}
})
.catch(error =>{
console.log(error.status);
dispatch({type:user_register_fail, payload:error.message})
})
}