diff options
author | Ib Lundgren <ib.lundgren@gmail.com> | 2012-11-17 12:40:39 +0100 |
---|---|---|
committer | Ib Lundgren <ib.lundgren@gmail.com> | 2012-11-17 12:40:39 +0100 |
commit | 2a2043c5f1ad467f6ee12444b273731a4c7e9c77 (patch) | |
tree | 80bc5b293e3b3781177c3e8731b12fea4a9f2407 | |
parent | 15d98b0122db2c552d428eacbd38124a2b7e8675 (diff) | |
download | oauthlib-2a2043c5f1ad467f6ee12444b273731a4c7e9c77.tar.gz |
BearerToken for oauth2 provider
-rw-r--r-- | oauthlib/oauth2/draft25/tokens.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/oauthlib/oauth2/draft25/tokens.py b/oauthlib/oauth2/draft25/tokens.py index cb58036..a21363c 100644 --- a/oauthlib/oauth2/draft25/tokens.py +++ b/oauthlib/oauth2/draft25/tokens.py @@ -153,3 +153,48 @@ def prepare_bearer_body(token, body=''): .. _`Bearer Token`: http://tools.ietf.org/html/draft-ietf-oauth-v2-bearer-18 """ return add_params_to_qs(body, [(('access_token', token))]) + + +class TokenBase(object): + + def __call__(self, request, refresh_token=False): + raise NotImplementedError('Subclasses must implement this method.') + + def validate_request(self, request): + raise NotImplementedError('Subclasses must implement this method.') + + def estimate_type(self, request): + raise NotImplementedError('Subclasses must implement this method.') + + +class BearerToken(TokenBase): + + @property + def expires_in(self): + return 3600 + + def save_token(self, request, token): + """Saves authorization codes for later use by the token endpoint.""" + raise NotImplementedError('Subclasses must implement this method.') + + def __call__(self, request, refresh_token=False): + token = { + 'access_token': common.generate_token(), + 'expires_in': self.expires_in, + 'scope': ' '.join(request.scopes), + 'token_type': 'Bearer', + } + if getattr(request, 'state', None): + token['state'] = request.state + + if refresh_token: + token['refresh_token'] = common.generate_token() + + self.save_token(request, token) + return token + + def validate_request(self, request): + pass + + def estimate_type(self, request): + pass |