CasaOS/pkg/utils/jwt/jwt_helper.go

54 lines
1.1 KiB
Go
Raw Normal View History

2021-09-26 02:35:02 +00:00
package jwt
import (
"fmt"
2021-09-27 06:17:36 +00:00
"github.com/IceWhaleTech/CasaOS/model"
loger2 "github.com/IceWhaleTech/CasaOS/pkg/utils/loger"
oasis_err2 "github.com/IceWhaleTech/CasaOS/pkg/utils/oasis_err"
2021-09-26 02:35:02 +00:00
"github.com/gin-gonic/gin"
"net/http"
)
func JWT(swagHandler gin.HandlerFunc) gin.HandlerFunc {
return func(c *gin.Context) {
var code int
code = oasis_err2.SUCCESS
token := c.GetHeader("Authorization")
if len(token) == 0 {
token = c.Query("token")
}
if token == "" {
code = oasis_err2.INVALID_PARAMS
}
if swagHandler == nil {
//claims, err := ParseToken(token)
_, err := ParseToken(token)
2021-09-26 02:35:02 +00:00
if err != nil {
code = oasis_err2.ERROR_AUTH_TOKEN
}
//else if time.Now().Unix() > claims.ExpiresAt {
// code = oasis_err2.ERROR_AUTH_TOKEN
//}
2021-09-26 02:35:02 +00:00
}
if code != oasis_err2.SUCCESS {
c.JSON(http.StatusOK, model.Result{Success: code, Message: oasis_err2.GetMsg(code)})
c.Abort()
return
}
c.Next()
}
}
//获取token
func GetToken(username, pwd string) string {
token, err := GenerateToken(username, pwd)
if err == nil {
return token
} else {
loger2.NewOLoger().Fatal(fmt.Sprintf("Get Token Fail: %V", err))
return ""
}
}