@@ -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
162165var (
@@ -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