12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package utils
- import (
- "github.com/gin-gonic/gin"
- "github.com/gofrs/uuid/v5"
- "github.com/sirupsen/logrus"
- systemReq "lc-fangdaosha/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 {
- logrus.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.BaseClaims.ID
- }
- } else {
- waitUse := claims.(*systemReq.CustomClaims)
- return waitUse.BaseClaims.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
- }
- }
- // GetUserName 从Gin的Context中获取从jwt解析出来的用户名
- func GetUserName(c *gin.Context) string {
- if claims, exists := c.Get("claims"); !exists {
- if cl, err := GetClaims(c); err != nil {
- return ""
- } else {
- return cl.Username
- }
- } else {
- waitUse := claims.(*systemReq.CustomClaims)
- return waitUse.Username
- }
- }
|