jwt_helper.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. /*
  2. * @Author: LinkLeong link@icewhale.com
  3. * @Date: 2022-06-17 14:01:25
  4. * @LastEditors: LinkLeong
  5. * @LastEditTime: 2022-06-24 10:13:52
  6. * @FilePath: /CasaOS/pkg/utils/jwt/jwt_helper.go
  7. * @Description:
  8. * @Website: https://www.casaos.io
  9. * Copyright (c) 2022 by icewhale, All Rights Reserved.
  10. */
  11. package jwt
  12. import (
  13. "fmt"
  14. "net/http"
  15. "github.com/IceWhaleTech/CasaOS/model"
  16. "github.com/IceWhaleTech/CasaOS/pkg/utils/common_err"
  17. loger2 "github.com/IceWhaleTech/CasaOS/pkg/utils/loger"
  18. "github.com/gin-gonic/gin"
  19. )
  20. // func JWT() gin.HandlerFunc {
  21. // return func(c *gin.Context) {
  22. // var code int
  23. // code = common_err.SUCCESS
  24. // token := c.GetHeader("Authorization")
  25. // if len(token) == 0 {
  26. // token = c.Query("token")
  27. // }
  28. // if token == "" {
  29. // code = common_err.INVALID_PARAMS
  30. // }
  31. // claims, err := ParseToken(token)
  32. // //_, err := ParseToken(token)
  33. // if err != nil {
  34. // code = common_err.ERROR_AUTH_TOKEN
  35. // } else if !claims.VerifyExpiresAt(time.Now(), true) || !claims.VerifyIssuer("casaos", true) {
  36. // code = common_err.ERROR_AUTH_TOKEN
  37. // }
  38. // if code != common_err.SUCCESS {
  39. // c.JSON(code, model.Result{Success: code, Message: common_err.GetMsg(code)})
  40. // c.Abort()
  41. // return
  42. // }
  43. // c.Request.Header.Add("user_id", strconv.Itoa(claims.Id))
  44. // c.Next()
  45. // }
  46. // }
  47. // //get AccessToken
  48. // func GetAccessToken(username, pwd string, id int) string {
  49. // token, err := GenerateToken(username, pwd, id, "casaos", 3*time.Hour*time.Duration(1))
  50. // if err == nil {
  51. // return token
  52. // } else {
  53. // loger2.Error(fmt.Sprintf("Get Token Fail: %V", err))
  54. // return ""
  55. // }
  56. // }
  57. // func GetRefreshToken(username, pwd string, id int) string {
  58. // token, err := GenerateToken(username, pwd, id, "fresh", 7*24*time.Hour*time.Duration(1))
  59. // if err == nil {
  60. // return token
  61. // } else {
  62. // loger2.Error(fmt.Sprintf("Get Token Fail: %V", err))
  63. // return ""
  64. // }
  65. // }
  66. //*************** soon to be removed *****************
  67. func JWT() gin.HandlerFunc {
  68. return func(c *gin.Context) {
  69. var code int
  70. code = common_err.SUCCESS
  71. token := c.GetHeader("Authorization")
  72. if len(token) == 0 {
  73. token = c.Query("token")
  74. }
  75. if token == "" {
  76. code = common_err.INVALID_PARAMS
  77. }
  78. //claims, err := ParseToken(token)
  79. _, err := ParseToken(token)
  80. if err != nil {
  81. code = common_err.ERROR_AUTH_TOKEN
  82. }
  83. //else if time.Now().Unix() > claims.ExpiresAt {
  84. // code = oasis_err2.ERROR_AUTH_TOKEN
  85. //}
  86. if code != common_err.SUCCESS {
  87. c.JSON(http.StatusOK, model.Result{Success: code, Message: common_err.GetMsg(code)})
  88. c.Abort()
  89. return
  90. }
  91. c.Next()
  92. }
  93. }
  94. //获取token
  95. func GetToken(username, pwd string) string {
  96. token, err := GenerateToken(username, pwd)
  97. if err == nil {
  98. return token
  99. } else {
  100. loger2.NewOLoger().Fatal(fmt.Sprintf("Get Token Fail: %V", err))
  101. return ""
  102. }
  103. }