def handle_noargs(self, **options): from django.db import transaction from django_oauth2.models import AuthorizationRequest, AccessToken, Code now = generate_timestamp() AuthorizationRequest.objects.filter(expire__lt=now).delete() AccessToken.objects.filter(expire__lt=now).delete() Code.objects.filter(expire__lt=now).delete() transaction.commit_unless_managed()
def validate(self): query_token = self.analyze_query() header_token = self.analyze_header() body_token = self.analyze_body() # Check that only one self.oauth_token = query_token or header_token or body_token try: access_token = AccessToken.objects.get(token=self.oauth_token) except AccessToken.DoesNotExist: raise InvalidToken(_('The access token provided is invalid.')) if access_token.expire < generate_timestamp(): raise ExpiredToken(_('The access token provided has expired.'))
def create(self, user, client, redirect_uri, scope=None, expire=None): key = generate_unique_key( self.model, key_length=appconst.CODE_KEY_LENGTH, ) code = self.model( key = key, client = client, active=True, expire = expire or generate_timestamp(appsettings.CODE_EXPIRY), redirect_uri = redirect_uri, #scope = scope, user = user, ) code.save() return code
def create(self, response_type, client, redirect_uri=None, state=None, scope=None, expire=None): key = generate_unique_key( self.model, key_length=appconst.AUTHORIZATION_REQUEST_KEY_LENGTH, ) authorization_request = self.model( key = key, response_type = response_type, client = client, redirect_uri = redirect_uri, state = state, expire = expire or generate_timestamp(appsettings.AUTHORIZATION_REQUEST_EXPIRY), #scope = ' '.join(scope), ) authorization_request.save() return authorization_request
def create(self, user, client, refreshable=False, expire=None): token = generate_unique_key( self.model, key_length=appconst.ACCESS_TOKEN_LENGTH, key_field='token', ) refresh_token = None if refreshable and appsettings.ALLOW_REFRESH_TOKEN: refresh_token = generate_unique_key( self.model, key_length=appconst.REFRESH_TOKEN_LENGTH, key_field='refresh_token', ) access_token = self.model( token = token, refresh_token = refresh_token, expire = expire or generate_timestamp(appsettings.ACCESS_TOKEN_EXPIRY), client=client, user = user, ) access_token.save() return access_token