Esempio n. 1
0
    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)
Esempio n. 2
0
    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
Esempio n. 3
0
 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)