Django Vkontakte Iframe

Django app for developing vk.com (aka vkontakte.ru largest, Russian social network) iframe applications. Handles user authentication and registration. Official git mirror.
Alternatives To Django Vkontakte Iframe
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Laravel Auth2,861
a day ago5mitJavaScript
Laravel 10 with user authentication, registration with email confirmation, social media authentication, password recovery, and captcha protection. Uses offical [Bootstrap 4](http://getbootstrap.com). This also makes full use of Controllers for the routes, templates for the views, and makes use of middleware for routing. 5 Minutes Stand-up time.
Django Social Auth2,56429936 years ago84September 07, 20134otherPython
Django social authentication made simple
Django Rest Auth2,3311,1092410 months ago25April 01, 2019234mitPython
This app makes it extremely easy to build Django powered SPA's (Single Page App) or Mobile apps exposing all registration and authentication related functionality as CBV's (Class Base View) and REST (JSON)
Webauthn998
6 months agobsd-3-clauseGo
WebAuthn (FIDO2) server library written in Go
Yii2 User94961161a year ago26April 03, 2018111mitPHP
[ABANDONED] Flexible user registration and authentication module for Yii2
Django Registration8442,379219 days ago25May 28, 20223bsd-3-clausePython
An extensible user-registration app for Django.
Php Auth8423213a year ago38April 21, 202130mitPHP
Authentication for PHP. Simple, lightweight and secure.
Openid Connect Php50023613 days ago20September 30, 202277apache-2.0PHP
Minimalist OpenID Connect client
Django Rest Registration433
11a day ago43March 23, 202217mitPython
User-related REST API based on the awesome Django REST Framework
U2f38724115 years ago4October 11, 20173JavaScript
U2F Authentication for Node.js
Alternatives To Django Vkontakte Iframe
Select To Compare


Alternative Project Comparisons
Readme

django-vkontakte-iframe

Django app for developing vk.com (aka vkontakte.ru largest, Russian social network) iframe applications.

Handles user authentication and registration.

Installation

$ pip install django-vkontakte-iframe

Requirements

  • django-annoying for AutoOneToOneField

Optional:

  • vkontakte >= 1.3 for request.vk_api and for populating cities and countries info via admin action.

Usage

  1. Register and configure vkontakte iframe application here: http://vkontakte.ru/apps.php?act=add

  2. Add your app's settings to settings.py:

    VK_APP_ID = '1234567'                   # Application ID
    VK_APP_KEY = 'M1gytuHwni'               # Application key
    VK_APP_SECRET = 'MiRFwrDYwcYFCTD18EcY'  # Secure key
    
  3. Add 'vk_iframe' to INSTALLED_APPS.

  4. Add 'vk_iframe.backends.VkontakteUserBackend' to AUTHENTICATION_BACKENDS:

    AUTHENTICATION_BACKENDS = (
        'django.contrib.auth.backends.ModelBackend',
        'vk_iframe.backends.VkontakteUserBackend',
    )
    
  5. Put 'vk_iframe.middleware.AuthenticationMiddleware', 'vk_iframe.middleware.IFrameFixMiddleware' and 'vk_iframe.middleware.LoginRequiredMiddleware' to MIDDLEWARE_CLASSES:

    MIDDLEWARE_CLASSES = [
        # ...
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        # ...
        'vk_iframe.middleware.IFrameFixMiddleware',
        'vk_iframe.middleware.AuthenticationMiddleware',
        # ...
        'django.middleware.locale.LocaleMiddleware',
        # ...
        'vk_iframe.middleware.LoginRequiredMiddleware',
    ]
    

    Please note that 'vk_iframe.middleware.AuthenticationMiddleware' must be after 'django.contrib.auth.middleware.AuthenticationMiddleware' but before 'django.middleware.locale.LocaleMiddleware'.

    'vk_iframe.middleware.LoginRequiredMiddleware' must be after 'vk_iframe.middleware.AuthenticationMiddleware'.

    Vkontakte visitors will be automatically registered and authorized as django users (username == vkontakte user id).

    LoginRequiredMiddleware is an optional. It returns 403 for all unauthorized requests with urls not listed in settings.PUBLIC_URLS. You should enable it for security reasons. Example of PUBLIC_URLS:

    PUBLIC_URLS = [
        '^admin/$',
        '^my-callback/',
    ]
    

    If i18n is in use then vkontakte user's language will be used as django's user language.

  6. Run python ./manage.py syncdb (or python ./manage.py migrate vk_iframe if South is used)

  7. Optional: load initial geo data (cities and countries):

    python manage loaddata vk-geo
    
  8. If you want to store more user data then put the following line as the 'First API request' (' API') option (in your app edit page at vkontakte.ru):

    method=getProfiles&uids={viewer_id}&format=json&v=3.0&fields=uid,first_name,last_name,nickname,domain,sex,bdate,city,country,timezone,photo,photo_medium,photo_big,photo_rec,has_mobile,rate,contacts,education
    
  9. For IE: adjust P3P policy header value according to your site privacy policy by providing VK_P3P_POLICY option in your settings.py:

    VK_P3P_POLICY = 'IDC DSP COR IVAi IVDi OUR TST'
    

    Default value is 'IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT'. See http://www.p3pwriter.com/LRN_111.asp for the full set of tags.

  10. That's all. All your app's visitors are now registered and authenticated django users. Additional profile data is available as user.vk_profile. vkontakte.API instance is available as request.vk_api if there is an access token available.

Popular Registration Projects
Popular Authentication Projects
Popular Security Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Python
Django
Authentication
Registration
Iframe
Russian
Vkontakte