首页 > 解决方案 > Delphi RESTClient - 使用 Tfrm_OAuthWebForm

问题描述

我正在尝试:-

  1. 请求具有所需范围的 OAuth 2.0 授权代码

教程来自:- https://developer.service.hmrc.gov.uk/api-documentation/docs/tutorials

我正在使用带有 RESTClient 和 Tfrm_OAuthWebForm 的 Delphi 10.1。

该示例说“用户将被重定向到 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;

任何想法我做错了什么?

希望这是有道理的。

蒂亚

标签: delphioauth-2.0rest-client

解决方案


快速阅读 HMRC 说明后,这可能不适用于您尝试使用的上下文。他们的意图是调用以显示他们的凭据页面,并且在成功的身份验证后,他们希望在“ https://www.example.com/redirect ”处重定向回您的 Web 服务器应用程序,就像他们使用身份验证令牌的示例一样在查询字符串中。您可以通过一些巨大的努力检测 Tfrm_OAuthWebForm 中的 URL 负载并提取令牌,但这不是一个简单的步骤。


推荐阅读