Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/oauthlib/openid/connect/core/tokens.py: 38%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

21 statements  

1""" 

2authlib.openid.connect.core.tokens 

3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

4 

5This module contains methods for adding JWT tokens to requests. 

6""" 

7from oauthlib.oauth2.rfc6749.tokens import ( 

8 TokenBase, get_token_from_header, random_token_generator, 

9) 

10 

11 

12class JWTToken(TokenBase): 

13 __slots__ = ( 

14 'request_validator', 'token_generator', 

15 'refresh_token_generator', 'expires_in' 

16 ) 

17 

18 def __init__(self, request_validator=None, token_generator=None, 

19 expires_in=None, refresh_token_generator=None): 

20 self.request_validator = request_validator 

21 self.token_generator = token_generator or random_token_generator 

22 self.refresh_token_generator = ( 

23 refresh_token_generator or self.token_generator 

24 ) 

25 self.expires_in = expires_in or 3600 

26 

27 def create_token(self, request, refresh_token=False): 

28 """Create a JWT Token, using requestvalidator method.""" 

29 

30 expires_in = self.expires_in(request) if callable(self.expires_in) else self.expires_in 

31 

32 request.expires_in = expires_in 

33 

34 return self.request_validator.get_jwt_bearer_token(None, None, request) 

35 

36 def validate_request(self, request): 

37 token = get_token_from_header(request) 

38 return self.request_validator.validate_jwt_bearer_token( 

39 token, request.scopes, request) 

40 

41 def estimate_type(self, request): 

42 token = get_token_from_header(request) 

43 if token and token.startswith('ey') and token.count('.') in (2, 4): 

44 return 10 

45 return 0