summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIb Lundgren <ib.lundgren@gmail.com>2012-11-17 12:40:39 +0100
committerIb Lundgren <ib.lundgren@gmail.com>2012-11-17 12:40:39 +0100
commit2a2043c5f1ad467f6ee12444b273731a4c7e9c77 (patch)
tree80bc5b293e3b3781177c3e8731b12fea4a9f2407
parent15d98b0122db2c552d428eacbd38124a2b7e8675 (diff)
downloadoauthlib-2a2043c5f1ad467f6ee12444b273731a4c7e9c77.tar.gz
BearerToken for oauth2 provider
-rw-r--r--oauthlib/oauth2/draft25/tokens.py45
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