登录成功,但SessionAuthMiddleware中public.AdminSessionInfoKey取不到值
来源:5-10 登陆管理功能 - 登陆信息接口开发
jessezwd
2020-06-29
curl -X POST "http://127.0.0.1:8880/admin_login/login" -H "accept: application/json" -H "Co
ntent-Type: application/json" -d "{ \"password\": \"123456\", \"username\": \"admin\"}"
{"errno":0,"errmsg":"","data":{"token":"admin"},"trace_id":"ac140a025ef9301ebd4e0da9104dc7b0","stack":null}
curl -X GET "http://127.0.0.1:8880/admin/admin_info" -H "accept: application/json"
{"errno":3,"errmsg":"user not login","data":"","trace_id":"ac140a025ef9309b3d070da966cb39b0","stack":"user not login"}
AdminLogin中已设置public.AdminSessionInfoKey:
......
sessInfo := &dto.AdminSessionInfo{
ID: admin.Id,
UserName: admin.UserName,
LoginTime: time.Now(),
}
sessBts, err := json.Marshal(sessInfo)
if err != nil {
middleware.ResponseError(c, 2003, err)
return
}
sess := sessions.Default(c)
sess.Set(public.AdminSessionInfoKey, string(sessBts))
sess.Save()
......
在SessionAuthMiddleware中,取不到public.AdminSessionInfoKey:
func SessionAuthMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
session := sessions.Default(c)
if adminInfo, ok := session.Get(public.AdminSessionInfoKey).(string); !ok || adminInfo == "" {
ResponseError(c, InternalErrorCode, errors.New("user not login"))
c.Abort()
return
}
c.Next()
}
}
1回答
-
牛儿吃草
2020-07-01
直接打印一下内容试试。
fmt.Println(session.Get(public.AdminSessionInfoKey))032024-01-16
相似问题