delphi - Delphi RESTClient - 使用 Tfrm_OAuthWebForm
问题描述
我正在尝试:-
- 请求具有所需范围的 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;
任何想法我做错了什么?
希望这是有道理的。
蒂亚
解决方案
快速阅读 HMRC 说明后,这可能不适用于您尝试使用的上下文。他们的意图是调用以显示他们的凭据页面,并且在成功的身份验证后,他们希望在“ https://www.example.com/redirect ”处重定向回您的 Web 服务器应用程序,就像他们使用身份验证令牌的示例一样在查询字符串中。您可以通过一些巨大的努力检测 Tfrm_OAuthWebForm 中的 URL 负载并提取令牌,但这不是一个简单的步骤。
推荐阅读
- javascript - 如何从需要基本身份验证的 URL 获取 src
- laravel - 基于域名的路由条件加载
- javascript - 如何使用 javascript 触发 asp.net customvalidator
- python - bucket.blob.upload_from_string 返回“ValueError:无无法转换为 unicode”
- javascript - 从 ajax 获取请求的数据
- flutter - 如何在颤振中实现这一点?
- popup - Kivy 从弹出窗口获取值并在屏幕上使用它
- android - ExoPlayer 中的自定义时间栏
- python - Copy Multiple Lines to variable in python using pyperclip
- kdb - 如何在 kdb 中删除具有重复值的行?