Skip to content

Commit

Permalink
refactor: MapClaims interface (appleboy#168)
Browse files Browse the repository at this point in the history
  • Loading branch information
appleboy authored Sep 14, 2018
1 parent 17e083a commit e80b227
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 12 deletions.
13 changes: 8 additions & 5 deletions auth_jwt.go
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ func (mw *GinJWTMiddleware) middlewareImpl(c *gin.Context) {
}

// GetClaimsFromJWT get claims from JWT token
func (mw *GinJWTMiddleware) GetClaimsFromJWT(c *gin.Context) (jwt.MapClaims, error) {
func (mw *GinJWTMiddleware) GetClaimsFromJWT(c *gin.Context) (MapClaims, error) {
token, err := mw.ParseToken(c)

if err != nil {
Expand All @@ -365,7 +365,10 @@ func (mw *GinJWTMiddleware) GetClaimsFromJWT(c *gin.Context) (jwt.MapClaims, err
}
}

claims := token.Claims.(jwt.MapClaims)
claims := MapClaims{}
for key, value := range token.Claims.(jwt.MapClaims) {
claims[key] = value
}

return claims, nil
}
Expand Down Expand Up @@ -615,13 +618,13 @@ func (mw *GinJWTMiddleware) unauthorized(c *gin.Context, code int, message strin
}

// ExtractClaims help to extract the JWT claims
func ExtractClaims(c *gin.Context) jwt.MapClaims {
func ExtractClaims(c *gin.Context) MapClaims {
claims, exists := c.Get("JWT_PAYLOAD")
if !exists {
return make(jwt.MapClaims)
return make(MapClaims)
}

return claims.(jwt.MapClaims)
return claims.(MapClaims)
}

// GetToken help to get the JWT token string
Expand Down
9 changes: 7 additions & 2 deletions auth_jwt_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -683,9 +683,13 @@ func TestClaimsDuringAuthorization(t *testing.T) {
})
}

func ConvertClaims(claims MapClaims) map[string]interface{} {
return map[string]interface{}{}
}

func TestEmptyClaims(t *testing.T) {

var jwtClaims jwt.MapClaims
var jwtClaims MapClaims

// the middleware to test
authMiddleware, _ := New(&GinJWTMiddleware{
Expand All @@ -709,7 +713,8 @@ func TestEmptyClaims(t *testing.T) {
return userID, ErrFailedAuthentication
},
Unauthorized: func(c *gin.Context, code int, message string) {
jwtClaims = ExtractClaims(c)
assert.Empty(t, ExtractClaims(c))
assert.Empty(t, ConvertClaims(ExtractClaims(c)))
c.String(code, message)
},
})
Expand Down
10 changes: 5 additions & 5 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
module github.com/appleboy/gin-jwt

require (
github.com/appleboy/gofight v2.0.0+incompatible // indirect
github.com/appleboy/gofight v2.0.0+incompatible
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect
github.com/dgrijalva/jwt-go v3.2.0+incompatible
github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7 // indirect
github.com/gin-gonic/gin v1.3.0 // indirect
github.com/gin-gonic/gin v1.3.0
github.com/golang/protobuf v1.2.0 // indirect
github.com/mattn/go-isatty v0.0.4 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/stretchr/testify v1.2.2 // indirect
github.com/tidwall/gjson v1.1.3 // indirect
github.com/stretchr/testify v1.2.2
github.com/tidwall/gjson v1.1.3
github.com/tidwall/match v0.0.0-20171002075945-1731857f09b1 // indirect
github.com/ugorji/go/codec v0.0.0-20180831062425-e253f1f20942 // indirect
gopkg.in/go-playground/validator.v8 v8.18.2 // indirect
Expand Down

0 comments on commit e80b227

Please sign in to comment.