Я пытаюсь подключить свое приложение React к API-интерфейсу Jira Cloud и, похоже, не смог обойти ошибку 403.
Мой код в настоящее время выполняет аутентификацию с использованием OAuth 2.0 и возвращает токен и облачный код.Я могу использовать это для GET-проблем, однако POST-запрос (например, создание проблемы) возвращается с 403. Я обнаружил здесь , что эта ошибка возвращается, если у пользователя нет необходимых прав доступаресурса или запустите метод.
Я убедился, что пользователь имеет правильную область действия ([write: jira-work, read: jira-work]) и подтвердил, что это отражено в учетной записи пользователя (в их учетной записи> вкладка «Подключить приложения».
Мое приложение не связано (через ApplicationLink) или не установлено (через Приложения, Управление приложениями), это необходимо для выполнения запросов POST?
Вот пример моего кода:
fetch(`https://api.atlassian.com/ex/jira/${jira.cloudid}/rest/api/2/issue/`, {
method: "POST",
headers: {
"Content-Type": 'application/json',
"Authorization": `Bearer ${jira.token}`
},
body: JSON.stringify(data)
})
.then(...)
Ни одна из версий API 2 или 3 не работает для этого запроса POST.Я исследовал использование Basic Auth , однако это не удалось из-за ошибок CORS.
Я убедился, что запрос POST работает в POSTMAN (с использованием cloudid и токена).
---------------------------------------------------------------------------------------------------------------------------
ОБНОВЛЕНИЕ
Послеобщаясь с сотрудниками Atlassian, существует проблема в их безопасности API:
"Испытав то же самое, что вы упомянули, я думаю, что обнаружил, в чем проблема.«В браузере. Я уже поговорил с одним из наших инженеров по безопасности, и мы быстро погрузились в код реализации, чтобы подтвердить, почему это не работает, и что нужно будет изменить с нашей стороны. Мы также уже открыли технический билетчтобы получить этот адрес. Вероятно, это займет несколько недель, но я буду держать вас в курсе, если услышу о каких-либо обновлениях! "
XSRF check failed
была основной ошибкой для моего ответа 403.Я опубликую все полученные обновления и отвечу на вопрос, когда будет найдено решение.