token.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package token
  2. import (
  3. "entrance-grpc/iam"
  4. "github.com/gin-gonic/gin"
  5. "github.com/google/uuid"
  6. "github.com/sirupsen/logrus"
  7. "os"
  8. "time"
  9. )
  10. //type UserClaims struct {
  11. // ID int64 `json:"user_id"`
  12. // UserName string `json:"user_name"`
  13. // RoleId int64 `json:"role_id"`
  14. // Avatar string `json:"avatar"`
  15. // Nickname string `json:"nickname"`
  16. // SystemId int32 `json:"system_id"`
  17. // AccessToken string `json:"access_token"`
  18. // jwt.StandardClaims
  19. //}
  20. var (
  21. secret = []byte(os.Getenv("JWT_SECRET"))
  22. effectTime = 30 * 24 * time.Hour // 30天有效期
  23. )
  24. //func GenerateToken(claims *UserClaims) (token string, err error) {
  25. // claims.ExpiresAt = time.Now().Add(effectTime).Unix()
  26. // sign, err := jwt.NewWithClaims(jwt.SigningMethodHS256, claims).SignedString(secret)
  27. // if err != nil {
  28. // return "", err
  29. // }
  30. // return sign, nil
  31. //}
  32. //func Layout(tokenString string) (err error) {
  33. // jwt.TimeFunc = func() time.Time {
  34. // return time.Unix(0, 0)
  35. // }
  36. // _, err = jwt.ParseWithClaims(tokenString, &UserClaims{}, func(token *jwt.Token) (interface{}, error) {
  37. // return secret, nil
  38. // })
  39. // if err != nil {
  40. // return err
  41. // }
  42. // return
  43. //}
  44. func GetAuthorization(c *gin.Context) (t string) {
  45. t = c.GetHeader("authorization")
  46. if t == "" {
  47. t = c.Request.URL.Query().Get("authorization")
  48. }
  49. return t
  50. }
  51. func CurrentUser(c *gin.Context) *iam.AdminUserInfo {
  52. if user, _ := c.Get("user"); user != nil {
  53. if u, ok := user.(*iam.AdminUserInfo); ok {
  54. return u
  55. }
  56. }
  57. logrus.Warn("CurrentUser = nil")
  58. return nil
  59. }
  60. func GetUID(c *gin.Context) int64 {
  61. user := CurrentUser(c)
  62. if user == nil {
  63. return 0
  64. }
  65. return user.ID
  66. }
  67. func GetUserName(c *gin.Context) string {
  68. user := CurrentUser(c)
  69. if user == nil {
  70. return `游客`
  71. }
  72. return user.UserName
  73. }
  74. func GenerateTokenUsingUUID() string {
  75. return uuid.New().String()
  76. }