Как отправить ключ Windows для облачной платформы Google в виде JSON? - PullRequest
0 голосов
/ 16 ноября 2018

Мне нужно прикрепить закодированный ключ к модулю для вызова остального набора метаданных Windows, чтобы получить подтверждение пользователя для входа в систему.

Итак, формат, который ожидает Google:

{
  "fingerprint": string,
  "items": [
  {
    "key": string,
    "value": string
  }
  ],
  "kind": string
}

Поэтому, когда вы отправляете данные в Google, они хотят в этом формате.

{
  "fingerprint": "sfasdfasdfFSN7AuU=",
  "items": [
  {
    "key": "windows-keys",
    "value": "{\"userName\": \"user\",
    \"modulus\": \"somekey\",
    \"exponent\": \"AQAB\",
    \"email\": \"samleemail\",
    \"expireOn\": \"2019-04-14T01:37:19Z\"
   }"
  }
  ]
}

Он также примет, если я отправлю тот же JSON в указанном ниже формате, но не выполнит там никаких действий:

{
  "fingerprint": "asfasd",
  "items": [
  {
    "key": "windows-keys",
    "value": 
    {
      "userName": "user",
      "modulus": "IEFBQUFCM056YUMxeWM",
      "exponent": "AQAB",
      "email": "somemailt",
      "expiresOn": "2019\"04-14T01:37:19Z" 
    }
  }
  ]
}

Кто-нибудь знает решение этой проблемы или сталкивался с этой проблемой? Ссылка на Google Doc

1 Ответ

0 голосов
/ 16 ноября 2018

В определении формата, которое вы предоставляете, упоминается, что свойство value каждого элемента в массиве items должно быть строкой, и если вы присмотритесь, то «правильный» пример, который вы предоставляете, устанавливает value как строка`

  {
    "key": "windows-keys",
    "value": "{\"userName\": \"user\",
    \"modulus\": \"somekey\",
    \"exponent\": \"AQAB\",
    \"email\": \"samleemail\",
    \"expireOn\": \"2019-04-14T01:37:19Z\"
   }"
  }

Однако во втором примере вы устанавливаете value как объект, поэтому он не в ожидаемом формате, правильная версия должна выглядеть примерно так:

{
  "fingerprint": "asfasd",
  "items": [
  {
    "key": "windows-keys",
    "value": "{\"userName\": \"user\",
      \"modulus\": \"IEFBQUFCM056YUMxeWM\",
      \"exponent\": \"AQAB\",
      \"email\": \"somemailt\",
      \"expiresOn\": \"2019-04-14T01:37:19Z\" 
    }"
  }
  ]
}

Это должно заставить его по крайней мере принять ваш запрос. Возможно, вам придется заполнить электронное письмо правильным и проверить, является ли он "expireOn" или "expiresOn", как ваши примеры используют оба

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