Отправка заголовка запроса / топора авторизации ios .post в реагирующем - PullRequest
1 голос
/ 02 мая 2020

У меня проблемы с передачей авторизации по моему заявлению. Мой токен jwt

export const update_profile = ({
  about,
  birthday,
  birth_location,
  residence_location,
  occupation,
  company_name,
  gender,
  marital_status,
  phone
}) => {
  return dispatch => {
    dispatch(
      {
        type: UPDATE_PROFILE
      }
    )
    const token = AsyncStorage.getItem('@token_jwt')
    let url = "/update_profile"
    Axios.post(`${SERVER}${url}`, {
      headers: {
        "Authorization": `Bearer ${token}`
      },
      "user": {
        "about": about,
        "birthday": birthday,
        "birth_location": birth_location,
        "residence_location": residence_location,
        "occupation": occupation,
        "company_name": company_name,
        "gender": gender,
        "marital_status": marital_status,
        "cellphone": phone
      }
    })
      .then((response) => {
        updateProfileSuccess(dispatch, response)
      })
      .catch((err) => {
        updateProfileError(err, dispatch)
      })
  }
}

Это мой код, и я всегда получаю несанкционированный возврат, мой токен сохраняется в AsyncStorage, когда пользователь входит в систему.

Может ли кто-нибудь помочь мне, пожалуйста

1 Ответ

1 голос
/ 02 мая 2020

При Ax ios заголовки необходимо указывать в качестве третьего аргумента (не 2-го).

Как это

const headers = {
  'Content-Type': 'application/json',
  'Authorization': `Bearer ${token}`
}

const data = {
"user": {
        "about": about,
        "birthday": birthday,
        "birth_location": birth_location,
        "residence_location": residence_location,
        "occupation": occupation,
        "company_name": company_name,
        "gender": gender,
        "marital_status": marital_status,
        "cellphone": phone
      }
}

axios.post(`${SERVER}${url}`, data, {
    headers: headers
  })
  .then((response) => {
    ...
  })
  .catch((error) => {
    ...
  })

Альтернативно, вы можете передать один аргумент, который должен быть объектом

...
const options = {
  method: 'POST',
  headers: headers,
  data: data,
  url: `${SERVER}${url}`,
};
axios(options);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...