在我的客户端应用程序中,我使用以下代码在标头中添加令牌:
RESTRequest.Params.AddItem('Authorization','Bearer ' + MyToken,TRESTRequestParameterKind.pkHTTPHEADER,[TRESTRequestParameterOption.poDoNotEncode]);
我想使用datasnap在我的服务器中获取此令牌.
可能吗?
我怎样才能做到这一点?
编辑
我可以验证Datasnap是否执行了TIdCustomHTTPServer.DoParseAuthentication,并且如果分配了DoParseAuthentication则调用FOnParseAuthentication.
那么,我怎样才能破解Datasnap分配我自己的OnParseAuthentication?
我认为这解决了我的问题.
解决方法
我也有同样的问题.如果使用Authentication头,那么我们得到EIdHTTPUnsupportedAuthorisationScheme错误,我需要设置OnParseAuthentication.我刚刚开始研究这个问题,在测试应用程序“桌面”中我可以做到以下几点.
procedure TMainForm.FormCreate(Sender: TObject); begin FServer := TIdHTTPWebBrokerBridge.Create(Self); FServer.OnParseAuthentication := DoParseAuthentication;// <-added this line end;
现在我需要弄清楚如何更新ASAPI dll来做同样的事情.