centos7,用docker部署,seafile+onlyoffice,onlyoffice7.2版默认启用jwt,seafile打开doc文档报令牌未正确形成。
onlyoffice中local.json的“services-CoAuthoring-token-inbox,outbox,browser”都改为false后重启还是会提示"令牌未正确形成"。并且重启后以上三个都会被自动更新为true。
还有什么可以解决的办法吗?
ONLYOFFICE 编辑器使用 Json Web Token (JWT),保护文档免遭未经授权的访问。在文档编辑器被初始化、以及在内部 ONLYOFFICE 文档服务之间交换命令时,这个令牌会被添加到配置中。会通过密钥对JWT进行签名,并根据向 ONLYOFFICE 文档发出的请求来验证该令牌。
自 ONLYOFFICE 文档 v.7.2 起,默认启用 JWT,并自动生成密钥。您可以随时按需更改相关参数。
为保护您的文档,您需要启用令牌验证并在 ONLYOFFICE 文档配置文件中指定您自己的密钥,然后在连接器设置中指定相同的密钥。
针对 Linux/ Windows:
配置 ONLYOFFICE 文档1.通过任意可用的文本编辑器打开 local.json 文件。
针对 Linux - /etc/onlyoffice/documentserver/local.json
针对 Windows - %ProgramFiles%\ONLYOFFICE\DocumentServer\config\local.json
2.通过将三个部分中的 false 值更改为 true 来启用令牌验证:
services.CoAuthoring.token.enable.browser
services.CoAuthoring.token.enable.request.inbox
services.CoAuthoring.token.enable.request.outbox
3.通过将三部分中的密钥值替换为您自己的文本字符串,来指定您自己的密钥。密钥必须是相同的。
services.CoAuthoring.secret.inbox.string
services.CoAuthoring.secret.outbox.string
services.CoAuthoring.secret.session.string
- "services": {
- "CoAuthoring": {
- "token": {
- "enable": {
- "request": {
- "inbox": true,
- "outbox": true
- },
- "browser": true
- }
- },
- "secret": {
- "inbox": {
- "string": "yoursecret"
- },
- "outbox": {
- "string": "yoursecret"
- },
- "session": {
- "string": "yoursecret"
- }
- }
- }
- }
- }
复制代码 1.保存更改。
2.重启服务,以使配置更改生效。
systemctl restart ds-converter ds-docservice ds-example ds-metrics
针对 Docker:
使用环境变量
如果您在 /etc/onlyoffice/documentserver/local.json 中更改自动生成的密钥或手动禁用 JWT,JWT 会被再次启用,服务器重启时也会重新生成密钥。为了避免此问题,请在 docker run 命令中使用环境变量。
如要更改密钥,请在 -e JWT_SECRET=my_jwt_secret 中指定您自己的密钥值。如要禁用 JWT,请使用 -e JWT_ENABLED=false。
参数说明:
--restart=always表示每次开机,只要当docker被设置为开机启动,此onlyoffice就会自动运行
-d 表示后台运行
-i: 交互式操作。
--name:为容器起一个名字
-t: 终端。
-p 8000:80 宿主机的8000端口映射到容器的80端口
-e JWT_ENABLED=false 开启密钥验证,默认开启。v7.2版以后功能。Dzzoffice必需要关闭。
-e JWT_SECRET=65321 设置密钥,如果没有开启密钥验证,无需设置此参数。
|
|