Nano Hash - криптовалюты, майнинг, программирование

atlassian cloud oauth 2.0, ошибка 403 при запросе POST для получения токена

Я собираюсь интегрировать свое угловое приложение с облаком Jira. Для аутентификации пользователей Atlassian использует OAuth 2.0, чтобы внешние приложения могли получать доступ к API продукта от имени пользователей. Я выполнил инструкции эта страница

  1. Направьте пользователя на URL-адрес авторизации, чтобы получить код авторизации.
  2. Обменяйте код авторизации на токен доступа
  3. Авторизуйте любые вызовы API продукта с помощью токена доступа
  4. Проверить доступ к сайту для приложения

Успешно прохожу первую ступень. Но на втором этапе мой запрос POST на получение токена терпит неудачу. Это данные моего запроса

    {
    "grant_type":"authorization_code",
    "client_id":"xxx", 
    "client_secret":"xxx",
    "code":"xxx", // I receive this code from callback url from atlassian login page
    "redirect_uri":"http://localhost:4200/"}

Это заголовок:

{'Content-Type': 'application/json'}

И вот что я получаю:

{"error":"invalid_grant","error_description":"Invalid authorization code"}

это код запроса, написанный на Angular 10:

this.http
        .post(
          'https://auth.atlassian.com/oauth/token', {
            grant_type: 'authorization_code',
            client_id: environment.oauth.clientID,
            client_secret: environment.oauth.secret,
            code: codeStr,
            redirect_uri: environment.oauth.redirect_uri
          }, {
            headers: exchangeAuthCodeHeader,
            responseType: 'json'}
        ).subscribe((data) => console.log(data), (error) => console.log(error));

Я застрял в этой ошибке на пару дней :( Любая идея будет большим подспорьем.


Ответы:


1

Я думаю, это потому, что вы пытаетесь использовать один и тот же код дважды.

После авторизации Jira код может сразу использоваться маршрутом, на который вы перенаправлены. Проверьте, есть ли у вас обработчик запросов на http://localhost:4200/.

И если да, то откуда вызывается запрос к https://auth.atlassian.com/oauth/token? Если это так, код немедленно используется при получении запроса на redirect_url.

28.10.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..