18910140161

使用戈朗杜松子酒框架会议时碰到的凝块问题

顺晟科技

2021-08-28 09:40:35

209

使用开发开发后端api,使用的是杜松子酒框架。上线之后需要用到权限控制,就得先把登录功能加上。

添加登录过程中,引入了杜松子酒的会议间件:https://github.com/gin-contrib/sessions

并使用最简单的甜饼干来保存会议

版的代码如下:

函数用户登录(c *gin .上下文()接口{},*常见.apiError){ 0

var参数=类型。用户{}

err :=c.BindJSON(m)

如果出错!=零

返回"请求错误",常见wrappandlog(' parase请求数据错误,错误)

}

u :=用户。用户登录(*参数)

如果u.Uid!='' {

会话:=会话。默认值(c)

会话。设置(“login_user”,u)

会话。保存()

返回你,零

}

返回零,零

}

func userInfo(c *gin .上下文()接口{},*常见.apiError){ 0

会话:=会话。默认值(c)

u :=会话。获取(“登录_用户”)

洛格鲁。调试('登录用户,会话,会话获取(“登录_用户”)

返回你,零

}

不管怎么测试都无法通过会议获取登录用户信息嘿,饼干里面也没有相关的数据,后面经过查看会议的源代码和调试,发现/厂商/github。com/gorilla/session/store去的如下方法中有报错,通过断点看出其中呃!=零

保存功能。请求。回应者,

会话*会话)错误{

编码,err :=securecookie .EncodeMulti(会话。名称(),会话。价值观,

南编解码器.)

如果出错!=零

返回错误

}

http .SetCookie(w,NewCookie(会话。名称(),编码,会话。选项))

返回零

}

打印出的错误信息如下:

secureoki :错误-由by: securecookie:错误引起-由: gob:类型未注册到接口:类型引起。用户

经过网上搜索,添加如下代码解决

gob .注册(类型。用户{})

凝块是开发包自带的一个数据结构序列化的编码/解码工具。

对对象进行编码和解码,需要先调用gob .注册进行类型注册,比如自定义结构,映射[字符串]接口{}{}等等

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航