我有一个REST客户端独立桌面应用程序,我可以在其中输入URL并可以选择要执行哪种REST方法(POST,GET,PUT等)REST服务器适当的认证位置
客户端主要提供发送正文消息(XML格式)的功能。在消息内部包含处理该消息的所有必要信息。
客户端也有一个基本的身份验证器,因此每个请求也发送一个用户名和密码。
在Delphi XE8应用程序向导的帮助下,我创建了一个带有身份验证和授权的简单独立Firemonkey REST服务器。
当我从客户端应用程序发送请求时,我的服务器能够在向导已添加的“WebModuleDefaultAction”功能中接收该请求。
我想知道的是否这是检查合法请求授权的适当位置。
它应该是这样的:
procedure TWebModule1.WebModuleDefaultAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
s:string;
Username:string;
Password:String;
begin
s:=Copy(Request.Authorization,7,length(Request.Authorization)-6);
s:=TNetEncoding.Base64.Decode(s);
if (Username='JohnDoe') and (Password='MyPassword') then
begin
if (Request.InternalPathInfo='') or (Request.InternalPathInfo='/') then Response.Content:=ReverseString.Content
else if (Request.InternalPathInfo='ShowContent') or (Request.InternalPathInfo='/ShowContent') then Response.Content:=PP_ShowContent.Content
else Response.SendRedirect(Request.InternalScriptName + '/');
handled:=true;
end
else
begin
Response.Content:='Unauthorized';
handled:=false;
end;
end;
用户检查是静态的只是现在,作为授权是为了呈现为一个概念证明。
但是,如果我这样做的授权,那么我预计这个函数将有一天增长太大,我也错过了ServerRoles。不幸的是,我不太了解REST开发的主题,知道什么是正确的做法。
我已经看到,还有一个由向导添加的验证管理器。但是和以前一样,我不知道该怎么办。