123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package jwt
- import (
- "demo/internal/app"
- "demo/internal/util"
- "github.com/dgrijalva/jwt-go"
- "github.com/gogf/gf/v2/net/ghttp"
- )
- //r *ghttp.Request
- func JWT(r *ghttp.Request) {
- var code int
- var data interface{}
- code = app.SUCCESS
- Authorization := r.GetHeader("token")
- token := Authorization
- if Authorization == "" {
- code = app.INVALID_PARAMS
- } else {
- _, err := util.ParseToken(token)
- if err != nil {
- switch err.(*jwt.ValidationError).Errors {
- case jwt.ValidationErrorExpired:
- code = app.ERROR_AUTH_CHECK_TOKEN_TIMEOUT
- default:
- code = app.ERROR_AUTH_CHECK_TOKEN_FAIL
- }
- }
- }
- if code != app.SUCCESS {
- r.Response.WriteJson(map[string]interface{}{
- "code": code,
- "msg": "登录超时",
- "data": data,
- })
- return
- }
- t, _ := jwt.Parse(token, func(*jwt.Token) (interface{}, error) {
- return util.JwtSecret, nil
- })
- //r.Context().Value()
- //r.Context().Value("jwt_username") = util.GetIdFromClaims("username", t.Claims)
- //r.Set
- r.SetCtxVar("jwt_username", util.GetIdFromClaims("username", t.Claims))
- r.Middleware.Next()
- }
|