[{"id":"bcb0874d-299b-448e-9552-9e9b25ef80dd","tags":[{"product":null,"links":null,"id":"ba7e818e-4f6b-4211-b1ac-58e3bafcf439","name":"\u66F4\u65B0","color":"orange","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"8ce3627e-9e58-471b-9133-4f135d191e7b","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"ae60ae59-34f5-4f32-a8eb-243ed1457543","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"3d4848c3-910f-4ffa-9153-60bb507334a9","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"133f4ca6-d951-4d65-a618-3dc6301266f7","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"de62ec1c-813e-40b1-8160-a4cd109afe64","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"2426c71d-8332-4cbd-a436-1ec4f8666464","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"2ce7b6b0-78aa-4e4b-bf8a-e4ba2f988298","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"4706db46-0811-4652-8f59-1e0a1da84758","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"8f1271bb-2cd9-4f39-9897-c15b239ee7ab","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"677e13a7-6f3e-449f-986c-2c3a26f8d54f","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"5e40f6dc-caec-49d7-a1d0-be65f06815ba","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"2457f0e0-9e71-4860-a87d-065e0fb84f84","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"d5c67fd0-1145-482c-9113-97b492c44c18","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"a609a8fa-ab91-4c1d-a1c3-d209d0463303","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"b4a9eb15-94e5-48df-b218-a24138f0cf9c","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]}]
        
(Showing Draft Content)

使用AuthToken进行系统集成

功能概述

之前为您介绍过在后台管理中获取 Token(令牌)然后进行 URL 集成的方法,详见生成令牌

这种方法使用起来非常方便,我们可以将带有 Token 的 URL 发给任何人,对方即可直接打开查看文档或登录站点。但它的便利性也带来了一定的安全方面的担心,因为它将Token (即令牌)显示在 URL 中。这对于那些对文档或站点的机密性要求较高的企业来说,就不够安全和友好了。

为了进一步解决和满足这些对安全性要求更高的场景,我们支持了使用 authToken 进行集成的方式(https://<domain>/integration/?authToken=<authToken>)。

这种集成方式需要调用 API 来获取 authToken,然后将 authToken 添加到 URL中,形成最终集成用的完整 URL。

当最终用户在浏览器中访问该 URL 时,Wyn 服务器会在响应中设置 token cookie 头,浏览器会自动存储该 cookie。并且您可以在生成 authToken 时设置它的过期时间。

由 authToken 解析为 cookie 的行为只能进行一次,所以之后用户将不能在其他浏览器中再次访问该URL,也不能将其发送给其他浏览器查看,从而大大提高了安全性。

接下来就为您介绍authToken 集成的具体过程。

AuthToken 集成

1. 打开站点页面

比如文档站点首页。

image

2. 通过 API 获取 authToken

具体操作为:按下键盘 F12,打开调试窗口。 将如下代码粘贴到 Console 中,回车得到 authToken。

// generate authToken
fetch('/api/authtoken', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
        User: 'admin',
        Password: 'admin',
        Lifetime: 60 * 10,
        OrganizationPath: '/',
    })
}).then(async r => console.log(await r.json()));

image2021-7-6_11-11-43.png


获取 authToken 的代码中有如下参数可设置:

参数

说明

User

用户名

Password

该用户的登录密码

Lifetime

authToken 的过期时间。

单位为“秒”。60*10 代表10分钟。

表示向Wyn 站点发出请求后,约10分钟后过期,会强制退出站点。

OrganizaitonPath

组织路径。比如 '/Org1/sub1'。

我们使用 '/' 表示全局组织。

注意

系统后台服务每小时清理一次authToken,三天内未使用的authToken将被删除掉。

3. 将 authToken 添加到 URL 中组成完整的集成 URL

完整URL的格式为:https://<domain>/integration/?authToken=<authtoken>(其中 “authToken” 大小写不敏感)

因此示例中完整的URL为:http://localhost:51980/integration/?authtoken=w5571B30Fs287Ds40B1s8D43s6DF11F49897D

在其他浏览器或无痕窗口中访问该URL,回车后会显示为 http://localhost:51980/integration/。

image2021-7-6_11-54-28.png

按下健盘F12 ,在调试窗口的 Application 页面可见浏览器访问URL时,将 authToken 实际转换成为了Cookie。

image2021-7-6_11-21-15.png


之后,我们再将URL转发其他人或者用其他浏览器打开会无法访问。因为由 authToken 解析为 cookie 只能进行一次。

AuthToken 集成URL格式

示例中我们使用的是文档门户地址,直接在原URL后边添加 /integration/?authToken=<authToken>

而在集成其他页面时,除了域名外还会有其他参数,此时请注意将“ integration ”添加到域名后,紧临域名,然后将“ /?authToken=<authToken> ” 添加到 URL末尾。

在集成后台管理网站时,则不需要添加 “ integration ” 参数,直接在URL末尾添加 “ /?authToken=<authToken> ” 即可。

示例:

页面

原页面URL

集成URL

文档门户首页

http://localhost:51980

http://localhost:51980/integration/?authtoken=w5571B30Fs287Ds40B1s8D43s6DF11F49897D

在文档门户预览仪表板

http://localhost:51980/categories/502bb5cb-eed5-4b9d-8f4c-dafce6989e9e/documents/0bead052-d56a-4fac-897b-a2984c0208e3/preview

http://localhost:51980/integration/categories/502bb5cb-eed5-4b9d-8f4c-dafce6989e9e/documents/0bead052-d56a-4fac-897b-a2984c0208e3/preview/?authtoken=w5571B30Fs287Ds40B1s8D43s6DF11F49897D

后台管理的某一页面

http://localhost:51980/admin/configuration/semanticModeling

http://localhost:51980/admin/configuration/semanticModeling/?authtoken=wCE9D2946s7440s49E8s9583sD564BE41261B