req.headers.authorization не определено при обновлении пользовательских данных в бэкэнде узла - PullRequest
0 голосов
/ 08 марта 2020

Я получаю сообщение об ошибке 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.

...