1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package utils
- import (
- "errors"
- "fmt"
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/net/ghttp"
- )
- // 定义接口给外部调用
- var SessionTalentInfo = sessionTalentInfo{}
- // 定义类
- type sessionTalentInfo struct {
- }
- // 为类绑定方法
- func (*sessionTalentInfo) GetTalentIdFromSession(r *ghttp.Request) (string, error) {
- //在前端request1111.js中手动把token加入header中的
- t := r.GetHeader("Token")
- if t == "" {
- return "", errors.New("not found info by token")
- }
- //通过token从请求的session中获得信息,session是用来存储用户对话的地方
- infoMap := r.Session.Get(t)
- if infoMap == nil {
- return "", errors.New("info in session not found")
- }
- //g.Map类似字典
- sInfoMap, ok := infoMap.(g.Map)
- if !ok {
- return "", errors.New("info in session is not a map")
- }
- fmt.Println("session")
- fmt.Println(sInfoMap)
- sTid := sInfoMap["talentId"]
- if sTid == nil {
- return "", errors.New("session map not contains key talentId")
- }
- tid := sTid.(string)
- return tid, nil
- }
- func (*sessionTalentInfo) GetOpenIdFromSession(r *ghttp.Request) (string, error) {
- t := r.GetHeader("Token")
- if t == "" {
- return "", errors.New("not found info by token")
- }
- infoMap := r.Session.Get(t)
- if infoMap == nil {
- return "", errors.New("info in session not found")
- }
- sInfoMap, ok := infoMap.(g.Map)
- if !ok {
- return "", errors.New("info in session is not a map")
- }
- openId := sInfoMap["wxOpenId"]
- if openId == nil {
- return "", errors.New("session map not contains key wxOpenId")
- }
- return openId.(string), nil
- }
|