В настоящее время я пытаюсь реализовать авторизацию пользователя в приложении iOS. Поэтому мы используем Active Directory B2C.Azure Active Directory B2C: как обновить токен
Все работает нормально, кроме обновления моих истекших жетонов. Я вызываю запрос url (fabrikamb2c.onmicrosoft.com/oauth2/v2.0/token?p=b2c_1_sign_in
), чтобы получить access_token
и refresh_token
. Ответ кажется действительным, и access_token
работает очень хорошо, пока он не истек.
Но если я хочу, чтобы получить новый маркер (как описано здесь: OAuth 2.0 authorization code flow, смотри главу 4) запрос просто получает откликнулся с 400: Bad Request.
Я не могу узнать, что я делаю неправильно. Вы, ребята, теперь способ, как отлаживать эти запросы или иметь какой-то контрольный список, который нужно настроить на портале Azure?
Спасибо!
Edit: это запрос я использую:
POST /xxx.onmicrosoft.com/oauth2/v2.0/token?p=b2c_1_local-account-signupin HTTP/1.1
HOST: login.microsoftonline.com
content-type: application/x-www-form-urlencoded
content-length: 1148
client_id=xxx&refresh_token=xxx&grant_type=refresh_token&redirect_uri=urn:ietf:wg:oauth:2.0:oob
Можете ли вы поделиться кодом, который вы используете, чтобы запросить обновленный токен? –
Спасибо за ваш комментарий. Я редактировал свой вопрос. – ErBeEn
И вы уверены, что ваш 'HOST' подобен тому, что вы разместили здесь? Потому что в ссылочной документации он остается как «HOST: https: // login.microsoftonline.com», что действительно вызывает 400 Server Error без дальнейших сообщений. Я пробовал с несколькими разными арендаторами AAD B2C, в том числе один очень старый (созданный в начале предварительного просмотра), и все работает так, как ожидалось. Убедитесь, что ваш параметр HOST действительно не имеет значения «https», а длина вашего контента соответствует длине запроса. – astaykov