Skip to content

Commit 405da24

Browse files
authored
feat: add custom ExpField (#340)
1 parent 72b2ef1 commit 405da24

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

auth_jwt.go

+12-4
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,9 @@ type GinJWTMiddleware struct {
157157

158158
// ParseOptions allow to modify jwt's parser methods
159159
ParseOptions []jwt.ParserOption
160+
161+
// Default vaule is "exp"
162+
ExpField string
160163
}
161164

162165
var (
@@ -402,6 +405,10 @@ func (mw *GinJWTMiddleware) MiddlewareInit() error {
402405
mw.CookieName = "jwt"
403406
}
404407

408+
if mw.ExpField == "" {
409+
mw.ExpField = "exp"
410+
}
411+
405412
// bypass other key settings if KeyFunc is set
406413
if mw.KeyFunc != nil {
407414
return nil
@@ -414,6 +421,7 @@ func (mw *GinJWTMiddleware) MiddlewareInit() error {
414421
if mw.Key == nil {
415422
return ErrMissingSecretKey
416423
}
424+
417425
return nil
418426
}
419427

@@ -431,7 +439,7 @@ func (mw *GinJWTMiddleware) middlewareImpl(c *gin.Context) {
431439
return
432440
}
433441

434-
switch v := claims["exp"].(type) {
442+
switch v := claims[mw.ExpField].(type) {
435443
case nil:
436444
mw.unauthorized(c, http.StatusBadRequest, mw.HTTPStatusMessageFunc(ErrMissingExpField, c))
437445
return
@@ -517,7 +525,7 @@ func (mw *GinJWTMiddleware) LoginHandler(c *gin.Context) {
517525
}
518526

519527
expire := mw.TimeFunc().Add(mw.TimeoutFunc(claims))
520-
claims["exp"] = expire.Unix()
528+
claims[mw.ExpField] = expire.Unix()
521529
claims["orig_iat"] = mw.TimeFunc().Unix()
522530
tokenString, err := mw.signedString(token)
523531
if err != nil {
@@ -592,7 +600,7 @@ func (mw *GinJWTMiddleware) RefreshToken(c *gin.Context) (string, time.Time, err
592600
}
593601

594602
expire := mw.TimeFunc().Add(mw.TimeoutFunc(claims))
595-
newClaims["exp"] = expire.Unix()
603+
newClaims[mw.ExpField] = expire.Unix()
596604
newClaims["orig_iat"] = mw.TimeFunc().Unix()
597605
tokenString, err := mw.signedString(newToken)
598606
if err != nil {
@@ -642,7 +650,7 @@ func (mw *GinJWTMiddleware) TokenGenerator(data interface{}) (string, time.Time,
642650
}
643651

644652
expire := mw.TimeFunc().Add(mw.TimeoutFunc(claims))
645-
claims["exp"] = expire.Unix()
653+
claims[mw.ExpField] = expire.Unix()
646654
claims["orig_iat"] = mw.TimeFunc().Unix()
647655
tokenString, err := mw.signedString(token)
648656
if err != nil {

0 commit comments

Comments
 (0)