2017-09-14 31 views
0

我有一个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开发的主题,知道什么是正确的做法。

我已经看到,还有一个由向导添加的验证管理器。但是和以前一样,我不知道该怎么办。

回答