0

我在尝试为 Web 服务的某些方法创建身份验证系统时遇到问题。我想创建一个 uuid(会话令牌)并放入这样的 xml,当我使用其他函数时重用此令牌进行身份验证。

我创建了一个这样的函数:

<cffunction name="myfunction" access="remote" returntype="xml">
<cfargument name="user" type="string" required="true">
<cfargument name="pwdtype="string" required="true">

    //LOGIN HERE and test if myuser is ok
    <cfif local.myuser.recordcount is 1> 
       <cfxml variable="local.myresult"><cfoutput>
     <myxml>
        <response type="myresponse">
            <message>Autenticazione effettuata correttamente</message>
                    <dati>  
                       <idtoken>#session.urltoken#</idtoken>
               <iduser>#local.myuser.iduser# </iduser>
        </dati> 
        </response>
     </myxml>               
       </cfoutput></cfxml>
    </cfif>
</cffunction>

我的问题是:如何进行会话以重新测试身份验证,如下行所示?

if session.mytoken is session.realtoken
4

1 回答 1

0

是的,可以按照您的要求进行操作,但这真的有必要吗?如果您构建基于令牌的身份验证方案,则由您(您的代码)来维护该令牌的各个方面。创建令牌。传递令牌。检查令牌。令牌有效吗?令牌是否过期?等等。在我看来,令牌是没有必要的。

相反,我建议像对待任何其他安全的 ColdFusion 应用程序一样对待您的 Web 服务。当用户访问(请求您的 Web 服务)时,检查有效会话。您可以轻松地利用 ColdFusion 的onCFCRequestApplication.cfc 文件方法来检查由您的 Web 服务发出的每个请求。如果不存在会话,则返回 401 响应以要求他们进行身份验证。这也将允许您利用 Java EE 会话的内置功能。

互联网上有几个这种设置的例子:

当然,您仍然可以使用这些方法来保护您的服务,并在需要时创建一个来回传递的令牌。只需将令牌存储在该用户的会话中,并针对他们的每个请求进行检查。

于 2013-06-14T12:23:43.710 回答