Запрос маркера доступа OAuth 2.0 не работает - PullRequest
0 голосов
/ 09 февраля 2019

Я использую пример M2M OAuth 2.0 "Client Credentials",

https://developer.okta.com/blog/2018/06/06/node-api-oauth-client-credentials

Этот пример представляет собой простой пример javascript node.js с индексом веб-службы.js, localhost: 3000 и тестовый клиент с именем test.js.test.js успешно получил токен доступа OAuth Okta.Однако может показаться, что клиентский запрос test.js к веб-службе работает правильно.Ниже приведен код test.js,

require('dotenv').config()
const request = require('request-promise')
const btoa = require('btoa')
const { ISSUER, TEST_CLIENT_ID, TEST_CLIENT_SECRET, DEFAULT_SCOPE } = process.env

const test = async () => {
  const token = btoa(`${TEST_CLIENT_ID}:${TEST_CLIENT_SECRET}`)
  try {
    const { token_type, access_token } = await request({
      uri: `${ISSUER}/v1/token`,
      json: true,
      method: 'POST',
      headers: {
        authorization: `Basic ${token}`,
      },
      form: {
        grant_type: 'client_credentials',
        scope: DEFAULT_SCOPE,
      },
    })

    console.log([token_type, access_token].join(' '))
    const response = await request({
      uri: 'http://localhost:3000',
      json: true,
      headers: {
        authorization: [token_type, access_token].join(' '),
      },
    })

    console.log(response)
  } catch (error) {
    console.log(`Error: ${error.message}`)
  }
}

test()

Как я уже сказал, test.js может без проблем получить токен доступа для Okta.Однако я продолжаю получать «Test_Error: Error: Parse Error» из test.js по запросу веб-службы.Я отладил код и обнаружил, что ошибка исходит из запроса test.js, http://localhost:3000".Вот раздел test.js, где try / catch перехватывает ошибку,

console.log([token_type, access_token].join(' '))
const response = await request({
uri: 'http://localhost:3000',
json: true,
headers: {
authorization: [token_type, access_token].join(' '),
},
})

Вывод консоли выглядит следующим образом:

>node test.js
Bearer eyJraWQiOiJoai1TdEl6eDlaUmRoaFpNeUlCalpRSkg2N3lsYkRCcmdJZ191ZkpycVZBIiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXIiOjEsImp0aSI6IkFULjJiVkNjTWEyWFlQTWhJWjdNUGx0TTRQeTV3WE9EU3ZjUUIyZVJaNkNvN2MiLCJpc3MiOiJodHRwczovL2phYmlsc2ttLm9rdGEuY29tL29hdXRoMi9hdXNhYzZ6NThoZmFyVTQzUzM1NiIsImF1ZCI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMCIsImlhdCI6MTU0OTczNjk4MywiZXhwIjoxNTQ5ODIzMzgzLCJjaWQiOiIwb2FhY2FxNzZqQjFWNjBMODM1NiIsInNjcCI6WyJzdWNoX3Njb3BlIl0sInN1YiI6IjBvYWFjYXE3NmpCMVY2MEw4MzU2In0.HOw6LLKDMJ0uaLSAVoUgLCvkCzpts1I4miF25J3fjKzTCd7ZPSgYbfVNTA7pdAwnxuxTR1YMS1Asn47BDKIHolqr4EZxgLBXdJQmLTDW1gZaCesPFPV1RH5WzRYjYpo923DxSkBaRU_ayD1g8DQitGnSy_oOqzbGgTKdfPTQDRIOh8G3aXBqO6s6fb6eukmm_OdT_NkuLg95AhehuNO_m5eook_Y4PYsYLiHC8KblrgZYDifrJV_RAC7SCgoiKLhR2RL6x8bvrQOqjaRTh1ZeEd2P3zCQJ_sL3xck_pCH59b57MlX_5kpcyewfJeVICl00Xmuj45j-aoX8IQEPX08g
Error: Error: Parse Error

Запрос на индексирование никогда не выполняется.JS.Мне кажется, что я получаю какой-то синтаксис заголовка «Ошибка разбора» перед выполнением http-запроса.Есть идеи?

Спасибо ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...