Почему нельзя войти в API-Store из Микросервиса? - PullRequest
0 голосов
/ 27 июня 2019

Я ищу способ входа в WSO2-AM из приложения для получения токена доступа. Логин Rest-API устарел.

Я пишу приложение ReactJS. Я хотел бы войти в мой WSO2-AM Store (с помощью идентификатора пользователя / пароля) и сгенерировать / получить токен доступа для дальнейшего использования (дальнейший вызов API), управляемого WSO2-AM.

Я вижу, что WSO2-AM Store уже давно устарел. Какая альтернатива? Пока ни WSO2, ни Google не могли мне помочь. Спасибо за ответ или ссылку.

Ответы [ 3 ]

1 голос
/ 28 июня 2019

Вы можете использовать Store REST APIs для действий по подписке API. Это не рекомендуется. API Jaggery только устарели.

0 голосов
/ 30 июня 2019

Обновление: Поэтому я могу получить токен на предъявителя с помощью команды curl:

curl -k -d "grant_type=password&username=admin&password=admin&scope=apim:subscribe" -H "Authorization: Basic UmZJc3dIYU9zaDNlMXIycTExZk4yV3JjalhBYTplejk5MDgzdzR6ZjhHVktCMnhLdXE2UGZTc2Nh" https://example.com:8243/token

Это прогресс! Тем не менее, я все еще испытываю трудности с получением моего приложения ReactJS:

    fetch ('https://example.com:8243/token', {
  method: 'POST',
  mode: 'no-cors',
  headers: {
    "Authorization": "Basic " + "...as above..."
  },

  body: JSON.stringify({
    "grant_type": "password",
    "username": "admin",
    "password": "admin",
    "scope": "apim:subscribe"
   })
})

.then(response => {
    console.log ("------------------" + response.ok + "----" + response.status + "----" + response.statusText);
  })

response.ok показывает false, response.status показывает 0

Можете ли вы помочь мне разобраться с этой "последней" вещью?

0 голосов
/ 30 июня 2019

Этого можно достичь, используя API REST API-менеджера.

  1. Сначала вы можете создать поставщика услуг, выполнив this . Это создаст приложение OAuth, которое предоставит вам clientId и секретный ключ для вызова API REST, а Base64 закодирует ClientId и Secret, которые вы получили в следующем. Формат: и получите токен доступа для начала вызова rest apis. Вот несколько примеров запросов curl

Для регистрации sp

curl -X POST \
  https://localhost:9443/client-registration/v0.14/register \
  -H 'Authorization: Basic YWRtaW46YWRtaW4=' \
  -H 'Content-Type: application/json' \
  -d '{
        "callbackUrl": "www.google.lk",
        "clientName": "rest_api_publisher",
        "owner": "admin",
        "grantType": "password refresh_token",
        "saasApp": true
}'

Чтобы получить токен доступа для вызова REST API

curl -X POST \
  'https://localhost:8243/token?grant_type=password&username=admin&password=admin&scope=apim:subscribe' \
  -H 'Authorization: Basic Base64(YOUR_CLIENTID:YOUR_CLIENTSECRET)'

обратите внимание, что я здесь использовал область действия apim: suscribe, это область, необходимая для доступа к магазину apis. Если вы хотите получить доступ ко всем API, область видимости URL будет иметь следующий формат.

scope=apim:api_view apim:api_create apim:api_publish apim:subscribe
  1. Поскольку у вас есть токен доступа, вы можете создать приложение, используя этот api , и сгенерировать ключи из этого api или, если вы уже создали приложение и сгенерировали ключи, вы можете получить токен доступа, связанный с этим, из этого api
...