У меня есть бэкэнд Graphql Express. Я проверил запрос, используя localhost: 3001 / graphql.
Мой запрос Axe ios внешнего интерфейса выглядит так:
export const login = (formData, setUser, setLoading) => {
setLoading(true)
axios.post('', {
variables: {
email: formData.email,
username: formData.username,
password: formData.password,
},
query: `
query Login(${formData.email ? `$email: String!` : `$username: String!`}, $password: String!) {
login(${formData.email ? `email: $email` : `username: $username`}, password: $password) {
_id
token
token_expiry
logged_in_at
geolocation
name
username
email
bio
profile_img
dark_mode
}
}
`
}).then(res => {
if (res.data.errors) {
process.env.NODE_ENV === 'development' && console.log(res.data.errors[0].message)
} else {
const userData = {...res.data.data.login, geolocation: JSON.parse(res.data.data.login.geolocation)}
setUser(logInSuccess(userData))
}
setLoading(false)
}).catch(err => {
process.env.NODE_ENV === 'development' && console.log(err)
setLoading(false)
})
}
Моя проблема заключается в следующем:
Когда я проверяю этот запрос, используя localhost: 3001 / graphql с правильным паролем, я получаю ответ 200 с моими данными.
Когда я проверяю этот запрос с использованием localhost: 3001 / graphql с неверным паролем, я получаю нужную ошибку, которая возвращается в res.data.errors. Эта ошибка выдается, когда bcrypt.compareSyn c возвращает false.
Когда я делаю этот запрос в веб-интерфейсе с правильным паролем, я получаю ответ 200 с данными моего ответа.
--- Когда Я делаю этот запрос во внешнем интерфейсе с неверным паролем. Я получаю ошибку 500 в .catch! Что мне здесь не хватает?
Вещи, которые я пробовал:
Я пытался удалить троицу из запроса, чтобы она работала для простой комбинации email и пароля.
Это ошибка 500:
Error: Request failed with status code 500
at createError (createError.js:17)
at settle (settle.js:19)
at XMLHttpRequest.handleLoad (xhr.js:60)
at XMLHttpRequest.onreadystatechange (<anonymous>:1:807)