@@ -297,7 +297,7 @@ def user_loader(self, identity):
297
297
"""
298
298
return self ._user_loader_callback (identity )
299
299
300
- def create_refresh_token (self , identity ):
300
+ def create_refresh_token (self , identity , expires_delta = None ):
301
301
"""
302
302
Creates a new refresh token
303
303
@@ -309,13 +309,19 @@ def create_refresh_token(self, identity):
309
309
query disk twice, once for initially finding the identity
310
310
in your login endpoint, and once for setting addition data
311
311
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
312
315
:return: A new refresh token
313
316
"""
317
+ if expires_delta is None :
318
+ expires_delta = config .refresh_expires
319
+
314
320
refresh_token = encode_refresh_token (
315
321
identity = self ._user_identity_callback (identity ),
316
322
secret = config .encode_key ,
317
323
algorithm = config .algorithm ,
318
- expires_delta = config . refresh_expires ,
324
+ expires_delta = expires_delta ,
319
325
csrf = config .csrf_protect
320
326
)
321
327
@@ -326,7 +332,7 @@ def create_refresh_token(self, identity):
326
332
store_token (decoded_token , revoked = False )
327
333
return refresh_token
328
334
329
- def create_access_token (self , identity , fresh = False ):
335
+ def create_access_token (self , identity , fresh = False , expires_delta = None ):
330
336
"""
331
337
Creates a new access token
332
338
@@ -340,13 +346,19 @@ def create_access_token(self, identity, fresh=False):
340
346
in the JWT via the user_claims_loader
341
347
:param fresh: If this token should be marked as fresh, and can thus access
342
348
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
343
352
:return: A new access token
344
353
"""
354
+ if expires_delta is None :
355
+ expires_delta = config .access_expires
356
+
345
357
access_token = encode_access_token (
346
358
identity = self ._user_identity_callback (identity ),
347
359
secret = config .encode_key ,
348
360
algorithm = config .algorithm ,
349
- expires_delta = config . access_expires ,
361
+ expires_delta = expires_delta ,
350
362
fresh = fresh ,
351
363
user_claims = self ._user_claims_callback (identity ),
352
364
csrf = config .csrf_protect
@@ -356,3 +368,4 @@ def create_access_token(self, identity, fresh=False):
356
368
config .algorithm , csrf = config .csrf_protect )
357
369
store_token (decoded_token , revoked = False )
358
370
return access_token
371
+
0 commit comments