Spaces:
Paused
Paused
| from ..rfc6749 import TokenMixin | |
| class IntrospectionToken(dict, TokenMixin): | |
| def get_client_id(self): | |
| return self.get('client_id') | |
| def get_scope(self): | |
| return self.get('scope') | |
| def get_expires_in(self): | |
| # this method is only used in refresh token, | |
| # no need to implement it | |
| return 0 | |
| def get_expires_at(self): | |
| return self.get('exp', 0) | |
| def __getattr__(self, key): | |
| # https://tools.ietf.org/html/rfc7662#section-2.2 | |
| available_keys = { | |
| 'active', 'scope', 'client_id', 'username', 'token_type', | |
| 'exp', 'iat', 'nbf', 'sub', 'aud', 'iss', 'jti' | |
| } | |
| try: | |
| return object.__getattribute__(self, key) | |
| except AttributeError as error: | |
| if key in available_keys: | |
| return self.get(key) | |
| raise error | |