123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package util
- import (
- "errors"
- "ordonnance/common/auth"
- "strconv"
- "strings"
- )
- type TokenDsta struct {
- UserId int `json:"userId"`
- MilliSecond int64 `json:"milliSecond"`
- AreaId int `json:"areaId"`
- AuthFlg int `json:"authFlg"`
- }
- func ParseToken(tokenStr string) (*TokenDsta, error) {
- retErr := errors.New("parse token err")
- if len(tokenStr) < 1 {
- return nil, retErr
- }
- srcToken := auth.AesDecrypt(tokenStr)
- if len(srcToken) < 10 {
- return nil, retErr
- }
- srcSplic := strings.Split(srcToken, "|")
- if len(srcSplic) != 3 && len(srcSplic) != 4 {
- return nil, retErr
- }
- userId, err := strconv.ParseInt(srcSplic[0], 10, 64)
- if err != nil || userId < 1 {
- return nil, retErr
- }
- milliSecond, err := strconv.ParseInt(srcSplic[1], 10, 64)
- if err != nil || milliSecond < 1 {
- return nil, retErr
- }
- areaId, err := strconv.ParseInt(srcSplic[2], 10, 64)
- if err != nil {
- return nil, retErr
- }
- tokenData := &TokenDsta{
- UserId: int(userId),
- MilliSecond: milliSecond,
- AreaId: int(areaId),
- }
- if len(srcSplic) == 4 {
- tokenData.AuthFlg, _ = strconv.Atoi(srcSplic[3])
- }
- return tokenData, nil
- }
|