1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package router
- import (
- "app.yhyue.com/moapp/jybase/redis"
- "context"
- "encoding/json"
- "fmt"
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/net/ghttp"
- "net/url"
- )
- const JY_SESSIONNAME = "SESSIONID"
- // JySession 剑鱼程序SESSION获取
- type JySession struct {
- UserId string // 上下文用户信息
- Data g.Map // 当前Session管理对象
- }
- // GetJySession 获取剑鱼程序session内容
- func GetJySession(ctx context.Context) (jSession *JySession) {
- jSession = &JySession{}
- value := ctx.Value(JY_SESSIONNAME)
- if value == nil {
- return
- }
- if localCtx, ok := value.(*JySession); ok {
- jSession = localCtx
- }
- return
- }
- // InitJySessionContext 获取用户session
- func InitJySessionContext(r *ghttp.Request) (jSession *JySession, err error) {
- jSession = &JySession{}
- cookie, err := r.Request.Cookie(JY_SESSIONNAME)
- if err != nil {
- return
- }
- if cookie.Value == "" {
- err = fmt.Errorf("cookie 内容为空")
- return
- }
- findKey, _ := url.QueryUnescape(cookie.Value)
- bs, err := redis.GetBytes("session", findKey)
- if err != nil {
- return
- }
- var data map[string]interface{}
- err = json.Unmarshal(*bs, &data)
- jSession.UserId, _ = data["userId"].(string)
- jSession.Data = data
- return
- }
|