def generate_feed_token(cls, feed_pk, user_pk): user_secret_key, created_unused = FeedSecretKey.objects.get_or_create(feed_id=feed_pk) secret_key = user_secret_key.secret_key.encode('utf-8') checksum = generate_random_from_vschar_set(length=10) return encrypt_cbc(int_to_base36(int(feed_pk)) + "." + int_to_base36(int(user_pk)) + '.' + '.' + checksum, SOCIAL_SETTINGS.FEED_TOKEN_SECRET_KEY) + '.' + encrypt_cbc(checksum, secret_key)
def _generate_access_token(cls, client_pk, user_pk, scope, expires_in, is_refreshable): user_secret_key, created_unused = UserClientSecretKey.objects.get_or_create_safe(user_id=user_pk, client=Client(pk=client_pk)) secret_key = user_secret_key.secret_key.encode('utf-8') expire = CurrentTimestamp(expires_in)() checksum = generate_random_from_vschar_set(length=10) scope_str = cls.scope_to_str(scope) info = scope_str + "." + int_to_base36(int(is_refreshable)) access_token = int_to_base36(expire) + "." + \ encrypt_cbc(int_to_base36(client_pk) + "." + int_to_base36(user_pk) + '.' + \ int_to_base36(expire) + '.' + info + '.' + checksum, OAUTH2_SETTINGS.ACCESS_TOKEN_SECRET_KEY) \ + '.' + encrypt_cbc(checksum, secret_key) if is_refreshable: refresh_token = encrypt_cbc(checksum + "." + generate_random_from_vschar_set(length=2), secret_key) else: refresh_token = None ret = OAuth2Credential(access_token=access_token, refresh_token=refresh_token, user_secret_key=secret_key, expires_in=expires_in) cls.store_credential(ret, client_pk, user_pk, scope, expire, is_refreshable) return ret
def generate_code(cls, client, scope, user): checksum = generate_random_from_vschar_set(length=3) info = int_to_base36(client.pk) + "." + cls.scope_to_str(scope) + "." + int_to_base36(user.pk) + "." \ + int_to_base36(CurrentTimestamp(OAUTH2_SETTINGS.CODE_EXPIRATION)()) + '.' + checksum return encrypt_cbc(info, OAUTH2_SETTINGS.CODE_SECRET_KEY)