package token import ( "entrance-grpc/iam" "github.com/gin-gonic/gin" "github.com/google/uuid" "github.com/sirupsen/logrus" "os" "time" ) //type UserClaims struct { // ID int64 `json:"user_id"` // UserName string `json:"user_name"` // RoleId int64 `json:"role_id"` // Avatar string `json:"avatar"` // Nickname string `json:"nickname"` // SystemId int32 `json:"system_id"` // AccessToken string `json:"access_token"` // jwt.StandardClaims //} var ( secret = []byte(os.Getenv("JWT_SECRET")) effectTime = 30 * 24 * time.Hour // 30天有效期 ) //func GenerateToken(claims *UserClaims) (token string, err error) { // claims.ExpiresAt = time.Now().Add(effectTime).Unix() // sign, err := jwt.NewWithClaims(jwt.SigningMethodHS256, claims).SignedString(secret) // if err != nil { // return "", err // } // return sign, nil //} //func Layout(tokenString string) (err error) { // jwt.TimeFunc = func() time.Time { // return time.Unix(0, 0) // } // _, err = jwt.ParseWithClaims(tokenString, &UserClaims{}, func(token *jwt.Token) (interface{}, error) { // return secret, nil // }) // if err != nil { // return err // } // return //} func GetAuthorization(c *gin.Context) (t string) { t = c.GetHeader("authorization") if t == "" { t = c.Request.URL.Query().Get("authorization") } return t } func CurrentUser(c *gin.Context) *iam.AdminUserInfo { if user, _ := c.Get("user"); user != nil { if u, ok := user.(*iam.AdminUserInfo); ok { return u } } logrus.Warn("CurrentUser = nil") return nil } func GetUID(c *gin.Context) int64 { user := CurrentUser(c) if user == nil { return 0 } return user.ID } func GetUserName(c *gin.Context) string { user := CurrentUser(c) if user == nil { return `游客` } return user.UserName } func GenerateTokenUsingUUID() string { return uuid.New().String() }