@@ -297,7 +297,7 @@ def user_loader(self, identity):
297297 """
298298 return self ._user_loader_callback (identity )
299299
300- def create_refresh_token (self , identity ):
300+ def create_refresh_token (self , identity , expires_delta = None ):
301301 """
302302 Creates a new refresh token
303303
@@ -309,13 +309,19 @@ def create_refresh_token(self, identity):
309309 query disk twice, once for initially finding the identity
310310 in your login endpoint, and once for setting addition data
311311 in the JWT via the user_claims_loader
312+ :param expires_delta: A datetime.timedelta for how long this token should
313+ last before it expires. If this is None, it will
314+ use the 'JWT_REFRESH_TOKEN_EXPIRES` config value
312315 :return: A new refresh token
313316 """
317+ if expires_delta is None :
318+ expires_delta = config .refresh_expires
319+
314320 refresh_token = encode_refresh_token (
315321 identity = self ._user_identity_callback (identity ),
316322 secret = config .encode_key ,
317323 algorithm = config .algorithm ,
318- expires_delta = config . refresh_expires ,
324+ expires_delta = expires_delta ,
319325 csrf = config .csrf_protect
320326 )
321327
@@ -326,7 +332,7 @@ def create_refresh_token(self, identity):
326332 store_token (decoded_token , revoked = False )
327333 return refresh_token
328334
329- def create_access_token (self , identity , fresh = False ):
335+ def create_access_token (self , identity , fresh = False , expires_delta = None ):
330336 """
331337 Creates a new access token
332338
@@ -340,13 +346,19 @@ def create_access_token(self, identity, fresh=False):
340346 in the JWT via the user_claims_loader
341347 :param fresh: If this token should be marked as fresh, and can thus access
342348 fresh_jwt_required protected endpoints. Defaults to False
349+ :param expires_delta: A datetime.timedelta for how long this token should
350+ last before it expires. If this is None, it will
351+ use the 'JWT_ACCESS_TOKEN_EXPIRES` config value
343352 :return: A new access token
344353 """
354+ if expires_delta is None :
355+ expires_delta = config .access_expires
356+
345357 access_token = encode_access_token (
346358 identity = self ._user_identity_callback (identity ),
347359 secret = config .encode_key ,
348360 algorithm = config .algorithm ,
349- expires_delta = config . access_expires ,
361+ expires_delta = expires_delta ,
350362 fresh = fresh ,
351363 user_claims = self ._user_claims_callback (identity ),
352364 csrf = config .csrf_protect
@@ -356,3 +368,4 @@ def create_access_token(self, identity, fresh=False):
356368 config .algorithm , csrf = config .csrf_protect )
357369 store_token (decoded_token , revoked = False )
358370 return access_token
371+
0 commit comments