在 eXist-db 中使用经过身份验证的会话/用户进行 REST API



我有一个从eXist应用程序运行的公共网站。我现在正在开发一个界面,供登录用户通过HTML表单和AJAX编辑某些文档。我在 eXist 中设置了一个模块,通过 eXist REST 接口(即 http://www.example.com/exist/rest/db/myapp/api/myxquery.xql(接收 AJAX POST 请求。但是,此模块似乎不知道用户已经登录的事实!

如何让 REST 模块使用登录用户的会话/身份验证?

我是否需要将用户/密码存储在浏览器中,以便随每个 REST API 请求一起传递?

如果这不是在用户/密码下从浏览器传递数据的首选模型,eXist推荐的解决方案是什么?

提前非常感谢。

(两年前有人问过这个问题的变体,但没有得到任何解决方案。

为了从 existdb 使用 REST-API,您只能使用 HTTP 基本身份验证对每个请求进行身份验证。您提到的问题中也提到了。

如果决定在应用的controller.xql中处理 AJAX 请求,则需要:

  • 将 AJAX 请求的路由添加到控制器
  • 确保呼叫login:set-user以便接听用户会话
  • 确保 AJAX 请求发送 cookie: 例如,fetch函数将发送授权cookie 只有当send-authorization是真的。
  • 查看output-methodserialization设置,因为您可能希望以 JSON 格式进行响应。 关于此的有用博客文章

最新更新