| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- package utils
- import (
- "github.com/gin-gonic/gin"
- uuid "github.com/satori/go.uuid"
- "log-server/global"
- systemReq "log-server/model/system/request"
- )
- func GetClaims(c *gin.Context) (*systemReq.CustomClaims, error) {
- token := c.Request.Header.Get("x-token")
- j := NewJWT()
- claims, err := j.ParseToken(token)
- if err != nil {
- global.GVA_LOG.Error("从Gin的Context中获取从jwt解析信息失败, 请检查请求头是否存在x-token且claims是否为规定结构")
- }
- return claims, err
- }
- // GetUserID 从Gin的Context中获取从jwt解析出来的用户ID
- func GetUserID(c *gin.Context) uint {
- if claims, exists := c.Get("claims"); !exists {
- if cl, err := GetClaims(c); err != nil {
- return 0
- } else {
- return cl.ID
- }
- } else {
- waitUse := claims.(*systemReq.CustomClaims)
- return waitUse.ID
- }
- }
- // GetUserUuid 从Gin的Context中获取从jwt解析出来的用户UUID
- func GetUserUuid(c *gin.Context) uuid.UUID {
- if claims, exists := c.Get("claims"); !exists {
- if cl, err := GetClaims(c); err != nil {
- return uuid.UUID{}
- } else {
- return cl.UUID
- }
- } else {
- waitUse := claims.(*systemReq.CustomClaims)
- return waitUse.UUID
- }
- }
- // GetUserAuthorityId 从Gin的Context中获取从jwt解析出来的用户角色id
- func GetUserAuthorityId(c *gin.Context) uint {
- if claims, exists := c.Get("claims"); !exists {
- if cl, err := GetClaims(c); err != nil {
- return 0
- } else {
- return cl.AuthorityId
- }
- } else {
- waitUse := claims.(*systemReq.CustomClaims)
- return waitUse.AuthorityId
- }
- }
- // GetUserInfo 从Gin的Context中获取从jwt解析出来的用户角色id
- func GetUserInfo(c *gin.Context) *systemReq.CustomClaims {
- if claims, exists := c.Get("claims"); !exists {
- if cl, err := GetClaims(c); err != nil {
- return nil
- } else {
- return cl
- }
- } else {
- waitUse := claims.(*systemReq.CustomClaims)
- return waitUse
- }
- }
|