我需要使用 XQuery 将用户登录到 eXist-db。当然我可以使用这段代码:
xquery version "3.0";
declare namespace exist = "http://exist.sourceforge.net/NS/exist";
declare namespace request="http://exist-db.org/xquery/request";
declare namespace xmldb="http://exist-db.org/xquery/xmldb";
declare option exist:serialize "method=json media-type=text/javascript";
let $userName := request:get-parameter("userName", ())
let $hash := request:get-parameter("hash", ())
let $login := xmldb:authenticate('/db', $userName, $hash)
return
<ajax-response>
<success>{$login}</success>
<username>{$userName}</username>
</ajax-response>
问题是,由于我从另一个服务接收密码和用户名,我以用 MD5 加密的散列形式接收它们(因为它们不能从一个服务明文传递到另一个服务)。
但该xmldb:authenticate
功能需要密码明文。我该如何解决这个问题?任何想法?有没有办法在不使用该authenticate
功能的情况下在 eXist-db 中“手动”登录?