在 eXist-db 中为 REST API 使用经过身份验证的 session/user

using authenticated session/user for REST API in eXist-db

我有一个来自 eXist 应用程序的 public 网站 运行。我现在正在开发一个界面,供登录用户通过 HTML 表单和 AJAX 编辑某些文档。我在 eXist 中设置了一个模块以通过 eXist REST 接口(即 http://www.example.com/exist/rest/db/myapp/api/myxquery.xql)接收 AJAX POST 请求。然而这个模块似乎没有意识到用户已经登录的事实!

如何让 REST 模块使用登录用户的 session/authentication?

我是否需要在浏览器中存储 user/password 以随每个 REST API 请求一起传递?

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

非常感谢。

(有人问了这个问题的变体 two years ago 但没有收到任何答案。)

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

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

  • 将 AJAX 请求的路由添加到控制器
  • 确保您调用 login:set-user 来获取用户会话
  • 确保 AJAX 请求发送了 cookie: 例如,fetch 函数将发送授权 cookie 仅当 send-authorization 为真时。
  • 查看 output-methodserialization 设置,因为您可能希望以 JSON 格式回复。 useful blog post about this