Delphi RESTClient - Использование Tfrm_OAuthWebForm - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь: -

  1. Запросить код авторизации OAuth 2.0 с необходимой областью действия

учебное пособие от: - https://developer.service.hmrc.gov.uk/api-documentation/docs/tutorials

и я использую Delphi 10.1 с RESTClient и Tfrm_OAuthWebForm.

В примере сказано: «Пользователь будет перенаправлен на экран входа в HMRC. Когда он отправит свои учетные данные, его попросят авторизоваться».ваше приложение для доступа к запрошенной области. "

Я получаю страницу входа в HMRC, просто: -

введите описание изображения здесь Я только наПервый этап: -

procedure TfrmMain.btnHello_User_RESTClient_Self_Bind_Test_1Click(Sender: TObject);
var
LURL: string;
wv: Tfrm_OAuthWebForm;
LToken: string;
begin
  /// step #1: get the auth-code
  LURL := 'https://test-api.service.hmrc.gov.uk/oauth/authorize';
  LURL := LURL + '?client_id=' + URIEncode (eHello_User_Client_ID.Text);
  LURL := LURL + '&scope=hello';
  LURL := LURL + '&redirect_uri=https://www.example.com/redirect'
  LURL := LURL + '&response_type=code'

  // optional
  // LURL := LURL + '&login_hint=' + URIEncode('user@example.com');

  Add_To_Memo(LURL, False{Clear_Memo});

  wv := Tfrm_OAuthWebForm.Create(self);
  try
    wv.OnTitleChanged := self.OAuth2Authenticator1_Hello_User_BrowserTitleChanged;
    wv.ShowModalWithURL(LURL);
  finally
    wv.Release;
  end;
end;

Есть идеи, что я сделал не так?

Надеюсь, что имеет смысл.

tia

1 Ответ

0 голосов
/ 18 октября 2018

После быстрого прочтения инструкций HMRC это может не сработать в контексте, который вы пытаетесь использовать.Они хотят, чтобы вызов извлек их страницу с учетными данными, и при успешной аутентификации они хотят перенаправить обратно на ваше приложение веб-сервера по адресу «https://www.example.com/redirect"», как в их примере с токеном аутентификации в строке запроса.мог бы с некоторыми значительными усилиями обнаружить загрузку URL в вашем Tfrm_OAuthWebForm и извлечь токен, но это не простой шаг.

...