厦门制作网页公司,网络seo天津,伪静态网站搬迁,最流行网站开发工具一、说明 本文是docker教程#xff0c;linux/win的安装版本也类似#xff0c;只需要修改配置文件中的secrt就可以了【Configuring JWT for ONLYOFFICE Docs - ONLYOFFICE】 二、正文开始 docker启动时候如果不想使用jwt#xff0c;加上参数-e JWT_ENABLEDfalse就可以了…一、说明 本文是docker教程linux/win的安装版本也类似只需要修改配置文件中的secrt就可以了【Configuring JWT for ONLYOFFICE Docs - ONLYOFFICE】 二、正文开始 docker启动时候如果不想使用jwt加上参数-e JWT_ENABLEDfalse就可以了比如
docker run --nameoo -i -t -d -p 10100:80 --restartalways -e JWT_ENABLEDfalse 镜像基地址 如果想使用jwt防止资源滥用就这样写
docker run --nameoo -i -t -d -p 10100:80 --restartalways -e JWT_ENABLEDtrue -e JWT_SECRET【这里写自己的秘钥】 镜像地址 两者的却别在于开启jwt并配置秘钥这里注意docker不需要修改配置文件直接使用参数就行不要修改配置文件如果修改了local.json容器重启后就会失效
-e JWT_ENABLEDtrue
-e JWT_SECRET【这里写自己的秘钥】 三、jwt生成方式 1、首先记住你上面的秘钥 2、你的config 一般来说config是由后端生成好传递给前端的比如说生成出来是这个样子的这个格式将作为jwt的加密体前端收到后千万不要修改千万不要修改
{type: desktop,documentType: word,historyList: {history: [],currentVersion: 1},document: {title: 【经营】通用合同模板.docx,url: http://47.94.91.67/demo_file/comment_test.docx,permissions: {print: true,download: true,edit: true},attachId: e932e7bb1e4d449aa9a7d8b403b4b517,fileType: docx,key: ccef18593ef90976d4b5d9},editorConfig: {canCoAuthoring: false,customization: {chat: false,about: false,feedback: false,compactHeader: false,displayTitle: true,leftMenu: false,rightMenu: false,autosave: false,compactToolbar: false,forcesave: true,toolbarNoTabs: true,help: false,hideRightMenu: true,plugins: true,logo: {image: http://192.168.71.162:8083/onlyoffice_logo.png,imageEmbedded: http://192.168.71.162:8083/only_office_embedded.png,url: https://oav3.kmxxg.cn/,imageDark: http://192.168.71.162:8083/onlyoffice_logo.png}},mode: view,callbackUrl: https://www.onlyoffice.com:443/callback.ashx?fromoffice-suite,lang: zh-CN,user: {name: 曹瑞剑雄,id: 104}}
}
3、使用jwt加密 对你生成的config进行加密比如说你的config像第【2】步一样这一步也是后端我用的是java demo
String config {\type\:\desktop\,\documentType\:\word\,\historyList\:{\history\:[],\currentVersion\:\1\},\document\:{\title\:\【经营】通用合同模板.docx\,\url\:\http://47.94.91.67/demo_file/comment_test.docx\,\permissions\:{\print\:true,\download\:true,\edit\:true},\attachId\:\e932e7bb1e4d449aa9a7d8b403b4b517\,\fileType\:\docx\,\key\:\ccef18593ef90976d4b5d9\},\editorConfig\:{\canCoAuthoring\:false,\customization\:{\chat\:false,\about\:false,\feedback\:false,\compactHeader\:false,\displayTitle\:true,\leftMenu\:false,\rightMenu\:false,\autosave\:false,\compactToolbar\:false,\forcesave\:true,\toolbarNoTabs\:true,\help\:false,\hideRightMenu\:true,\plugins\:true,\logo\:{\image\:\http://192.168.71.162:8083/onlyoffice_logo.png\,\imageEmbedded\:\http://192.168.71.162:8083/only_office_embedded.png\,\url\:\https://oav3.kmxxg.cn/\,\imageDark\:\http://192.168.71.162:8083/onlyoffice_logo.png\}},\mode\:\view\,\callbackUrl\:\https://www.onlyoffice.com:443/callback.ashx?fromoffice-suite\,\lang\:\zh-CN\,\user\:{\name\:\曹瑞剑雄\,\id\:\104\}}};
JSONObject jsonObject JSONUtil.parseObj(config);
String tokenSecret 你的秘钥;
MapString, Object payloadClaims BeanUtil.beanToMap(jsonObject);
String token ;
try {Signer signer HMACSigner.newSHA256Signer(tokenSecret);JWT jwt new JWT();for (String key : payloadClaims.keySet()) {jwt.addClaim(key, payloadClaims.get(key));}token JWT.getEncoder().encode(jwt, signer);
} catch (Exception e) {token ;
}
4、token生成使用 token生成后set 进去你的 config 中然后把新的 config 返回给前端就可以了比如 5、前端使用方式 前端拿到这个config后在初始化only的时候不建议修改里面的内容会导致jwt解析与传入的config不一致导致验证失败。所以拿到内容后直接初始化即可。 四、后端用到的 jwt 插件
dependencygroupIdcom.inversoft/groupIdartifactIdprime-jwt/artifactIdversion1.3.1/version
/dependency