ms-wopi - WOPI 主机实现问题

标签 ms-wopi

我们正在尝试按照协议(protocol)实现 Wopi 主机以与 OWA 集成,如 here 中所述,我们在某些方面遇到了一些问题:

  • 我们实现了一个简单的主机,它只能查看文件,即它实现了 CheckFileInfo 和 GetFile View 。在测试环境中,流程正常运行,我们可以在 OWA 中查看文件。关键是,当执行 Wopi 验证器(Web 和 docker 版本)时,我们在 GetFile 操作中遇到错误,因为验证器试图访问末尾有两个//的端点:

    主机/wopi/files/file_id//内容

    这是仅在验证器中发生的已知问题吗?为什么在 WopiSrc 的末尾附加两个“/”?我们该如何解决这个问题?

  • 我们已阅读此处的一些帖子,指出需要进行编辑才能正式验证我们与 Microsoft 的 OWA 集成。这是真的?难道 CheckFileInfo 和 GetFile View 不是实现只能查看文件的简单 Wopi 主机所必需的唯一 View 吗?我们只是在 CheckFileInfo 操作的响应中传递所需的信息。我们没有使用 FileUrl 或任何其他参数,而是使用必需的参数。据我所知,这两个 View 是使用 OWA 查看文件所需的唯一一个 View ,如所述 here

  • 此外,当浏览器向 OWA 发送请求并传递 token 和 WopiSrc 时,我们在流程的第一部分遇到了问题。我们只能通过 GET 方法在查询字符串中传递 token 来使流程正常工作。如果我们将其放在带有 POST 方法的 JSON 下,OWA 会简单地忽略它,并且根本不会尝试通过 WopiSrc 调用 Wopi 主机。有人可以给我们一些关于这个问题的启发,以弄清楚可能会发生什么吗?

  • 此外,我们还陷入了 token 验证的某个阶段。当文档说 token 是由主机生成并且对于单个用户/文件组合来说应该是唯一的时,文档非常清楚。我们已经做到了。问题是,当请求来自 OWA 时,我们如何知道尝试访问资源的用户是什么?例如,当 OWA 在 CheckFileInfo 和 GetFile View 中调用主机时,它会将 token 传递给我们。但我们如何才能知道用户信息呢?由于 token 适用于单个文件(我们在正在访问的端点的地址中拥有该 token )和单个用户,此时我们如何验证用户?当收到来自 OWA 的请求时,我们没有找到任何可用于提取此信息的 header 或占位符值,我们在这里有点迷失。我们考虑过将用户信息附加到 token 中,然后将其提取回来,但据我所知,这样做只是确保 token 在请求之间没有被修改。有人知道吗?

最佳答案

关于 Microsfot 的验证需要编辑功能。

对于 POST 情况,提交必须以“表单”而非 JSON 形式进行。

token 验证是完全开放的,您必须选择您认为最好的方法。在这种情况下,JWT 是一个不错的选择。

关于ms-wopi - WOPI 主机实现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60459771/

相关文章:

javascript - 用于在 Web 应用程序的 HTML 上实现 PowerPoint 查看器的选项(除了嵌入提供的 i-frame 标记之外)

asp.net - 使用 Wopi 和 Office Online Server 在 Word 中编辑

javascript - 什么是 WOPI 操作 URL?

JAVA WOPI : What should be the return type of GetFileContent API?

ms-word - 没有 MS-FSSHTTP/COBALT 的 WOPI 实现

ms-wopi - 未调用 WOPI 主机

validation - 如何构建WOPI验证应用程序

c# - 如何在 C# 和 WOPI 客户端是 OWA 上实现 MS-FSSHTTP 以使用 WOPI 主机编辑 Word

javascript - 如何在主页中获取wopi发现