Я получаю сообщение об ошибке 401: сообщение: «Auth Failed», потому что req.headers.authorization кажется неопределенным. Я не понимаю, в чем проблема.
updateUserPassword проверяется checkAuth, где появляется ошибка:
module.exports = (req, res, next) => {
try {
const token = req.headers.authorization.split(" ")[1]
const decoded = jwt.verify(token, "secret")
req.userData = decoded,
req.userToken = token
next()
} catch(error) {
console.log("",req.headers.authorization);
return res.status(401).json({
message: 'Auth Failed'
})
}}
node.js код для exports.updateUserPassword
exports.updateUserPassword = async (req, res, next) => {
const requestValid = validateRequest.validate(req, 'post', ['oldPassword', 'newPassword'])
if (!requestValid.valid) {
res.status(500).json({
error: requestValid.errors
})
return
}
const uid = req.userData.uid,
oldPassword = req.body.oldPassword,
newPassword = req.body.newPassword,
correctPassword = await userModel.checkPassword(uid, oldPassword)
if (!correctPassword.success) {
res.status(200).json({
error: correctPassword.error,
display: true
})
return
}
const passwordUpdated = await userModel.setPassword(uid, newPassword)
if (!passwordUpdated.success) {
res.status(500).json({
error: passwordUpdated.error
})
return;
}
res.status(200).json({
message: 'Password succesfully updated',
success: true
})
React. js handleUpdatePassword ()
handleUpdatePassword = () => {
console.log("Updating Password");
this.setState(
{
errors: [],
errorMessage: "",
pageLoading: true
},
() => {
if (!this.validatePasswordForm()) return;
this.props.actions.reqUpdateTherapistPassword({
body: {
oldPassword: this.state.currentPassword,
newPassword: this.state.newPassword
},
headers: this.autheHeaders,
resource: this.updatePasswordUrl
});
}
);
};
У меня также есть res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
в моем приложении. js в узле, поэтому оно должно работать, но я не знаю, почему headers.authorization не из интерфейса React.