首页 > 解决方案 > 如何结合 FDBatchMoveJsonWriter 在 RAD Studio/Delphi 中添加额外的 JSON 对?

问题描述

我正在使用 HTML 客户端,并且遇到以下情况:使用 Embarcadero 的 RAD 服务器的内置身份验证方法,我已成功登录用户,现在想以这样一种方式来回传递会话令牌:连接是 RESTful 的。问题在于,由于某种原因,我不知道如何在 RAD 服务器中跟踪所述会话令牌。Embarcadero 自己一直保密,告诉我们公司我们可以使用 Sencha/ExtJS 做到这一点,但我们宁愿不必购买更多的软件。整体结构如下:

登录 POST 用户名和密码(工作)到 RAD 服务器(仍在工作)并接收带有会话令牌的完整响应。此时,我想打开另一个 HTML 文件并在显示数据时维护该会话令牌,这样对于每个 JSON 请求,我都会发送该会话令牌。但在 RAD Studio 中,据我所知,我无法手动将 JSON 数据添加到已构建的 JSON 对象以提供给 FDBatchMoveJsonWriter 组件。任何人对此做过的任何建议/例子,如果可能的话?

标签: jsonrestdelphisessionfiredac

解决方案


我还没有使用 RAD 服务器,但发布到许多 REST 服务。RAD 服务器可能支持在标头中添加身份验证吗?我将 THTTPBasicAuthenticator 连接到我的 TRESTClient 并在 OnAuthenticate 事件中添加令牌数据。

procedure TCLTSProcessor.RESTAuthenticatorAuthenticate(ARequest: TCustomRESTRequest; var ADone: Boolean);
begin
  ARequest.AddAuthParameter('token', userToken, pkHTTPHEADER);
end;

我使用的另一种方法是将 TOAuth2Authenticator 连接到 REST 客户端并将 TokenType 设置为 ttBEARER 并设置 AccessToken 属性。


推荐阅读