我们正在尝试按照协议实现 Wopi 主机以与 OWA 集成,如此处所述,我们在某些方面遇到了一些问题:
我们实现了一个只能查看文件的简单主机,即它实现了 CheckFileInfo 和 GetFile 视图。在测试环境中,流程正在运行,我们能够在 OWA 中查看文件。关键是,在执行 Wopi Validator(web 和 docker 版本)时,我们在 GetFile 操作中遇到错误,因为验证器试图以两个 // 结尾来访问端点:
host/wopi/files/file_id//contents
这是仅在验证器中发生的已知问题吗?为什么将两个'/'附加到 WopiSrc 的末尾?我们如何解决这个问题?
我们在这里阅读了一些帖子,指出需要进行编辑才能正式验证我们与 Microsoft 的 OWA 集成。这是真的?CheckFileInfo 和 GetFile 视图不是实现仅能够查看文件的简单 Wopi 主机所必需的吗?我们只是在 CheckFileInfo 操作的响应中传递所需的信息。我们没有使用 FileUrl 或任何其他参数,而是使用必需的参数。据我所见,这两个视图是使用 OWA 查看文件所需的唯一一个,如所述here
此外,当浏览器向 OWA 发送请求并传递令牌和 WopiSrc 时,我们在流程的第一部分遇到了问题。我们只能使流程通过 GET 方法传递查询字符串中的令牌。如果我们将它放在带有 POST 方法的 JSON 下,OWA 会简单地忽略它,并且根本不会尝试通过 WopiSrc 调用 Wopi Host。有人可以在这件事上给我们一些启发,以弄清楚可能发生的事情吗?
此外,我们还停留在令牌验证的某个点上。当他们说令牌由主机生成并且对于单个用户/文件组合应该是唯一的时,文档非常清楚。我们已经做到了。问题是,当请求来自 OWA 时,我们应该如何知道试图访问资源的用户是什么?例如,当 OWA 在 CheckFileInfo 和 GetFile 视图中调用主机时,它会将令牌传递给我们。但是我们怎么能知道用户信息呢?由于令牌用于单个文件(我们在被访问的端点的地址中拥有)和单个用户,所以我们如何在这一点上验证用户?在收到来自 OWA 的请求时,我们还没有找到任何可用于提取此信息的标头或占位符值,我们在这里有点迷失了。我们考虑过将用户信息附加到令牌,然后将其提取回来,但就我所见,这样做我只是确保令牌在请求之间没有被修改。有人有什么主意吗?