首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ONLYOFFICE协作编辑页面中文档下载地址url携带(传输)sessionid测试

ONLYOFFICE协作编辑页面中文档下载地址url携带(传输)sessionid测试

作者头像
hotqin888
发布2018-10-08 17:12:05
1.6K0
发布2018-10-08 17:12:05
举报
文章被收录于专栏:hotqin888的专栏hotqin888的专栏

onlyoffice协作页面里有个文档下载地址,这个地址是第一个人打开这个文档的时候,服务器会根据这个文档地址,将文档管理服务器里的文档下载到onlyoffice document server的内存中,第二个人打开就直接用key打开了……

问题是,这个文档地址,如何确权呢,因为onlyoffice在请求这个地址的时候,估计请求头里没有带sessionid,所以即使用户登录了,文档无服务器端也无法取得用户的登录信息。

将这个文档地址,带上sessionid就行了。

"document": {
          "fileType": "{{.fileType}}",
          "key": "{{.Key}}",//"Khirz6zTPdfd7"
          "title": "{{.Doc.FileName}}",
          "url": "http://192.168.99.1/attachment/onlyoffice/{{.Doc.FileName}}?hotqinsessionid={{.Sessionid}}",
          "info": {

这样,在文档服务器端,可以直接取得用户登录名了。

beego:

//用户登录后,服务器端将信息写入session
func (c *LoginController) LoginPost() {
	if err == nil {
		c.SetSession("uname", user.Username)
		c.SetSession("pwd", user.Password)
…………

//浏览器请求下载文档
func (c *AttachController) Attachment() {
	var useridstring string
	_, _, uid, isadmin, _ := checkprodRole(c.Ctx)
	// if uid != 0 {
	useridstring = strconv.FormatInt(uid, 10)

//根据请求携带的sessionid获取用户登录信息
func checkprodRole(ctx *context.Context) (uname, role string, uid int64, isadmin, islogin bool) {
	v := ctx.Input.CruSession.Get("uname")

当然,官方推荐的是token方式。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年09月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文档服务
文档服务(Document Service,DS)是腾讯云数据万象提供云上文档处理服务,支持多种类型的文件生成图片或 html 格式的预览,可以解决文档内容的页面展示问题,满足 PC、App 等多端的文档在线浏览需求。同时,本产品还提供文本隐私筛查能力,可以有效识别文本中的身份证号、银行卡号、手机号等敏感数据,满足数据可用性和隐私保护的各种要求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档