json - 如何结合 FDBatchMoveJsonWriter 在 RAD Studio/Delphi 中添加额外的 JSON 对?
问题描述
我正在使用 HTML 客户端,并且遇到以下情况:使用 Embarcadero 的 RAD 服务器的内置身份验证方法,我已成功登录用户,现在想以这样一种方式来回传递会话令牌:连接是 RESTful 的。问题在于,由于某种原因,我不知道如何在 RAD 服务器中跟踪所述会话令牌。Embarcadero 自己一直保密,告诉我们公司我们可以使用 Sencha/ExtJS 做到这一点,但我们宁愿不必购买更多的软件。整体结构如下:
登录 POST 用户名和密码(工作)到 RAD 服务器(仍在工作)并接收带有会话令牌的完整响应。此时,我想打开另一个 HTML 文件并在显示数据时维护该会话令牌,这样对于每个 JSON 请求,我都会发送该会话令牌。但在 RAD Studio 中,据我所知,我无法手动将 JSON 数据添加到已构建的 JSON 对象以提供给 FDBatchMoveJsonWriter 组件。任何人对此做过的任何建议/例子,如果可能的话?
解决方案
我还没有使用 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 属性。
推荐阅读
- openshift - 如何使用 ansible 在现有集群中添加 glusterfs 节点
- java - 处理空指针异常多个类
- javascript - 如何在下拉引导程序4中放置图像以设置边框
- php - 一页有两种形式
- verilog - verilog reg 作为循环计数器不能使用最大数
- oop - 模板方法模式:改变算法的架构
- angular - 对每个处理的 url 进行不必要的调用
- node.js - Angular 应用部署到 Azure - 无法启动 npm
- bootstrap-4 - 如何让 td 内容垂直对齐?
- scala - Scala 2.12:无法在提取器对象中使用 unapply