(бывший «Вконтакте») | Документация Python Social Auth 0.1.0 | Все о фреймворке Джанго и его библиотеках

(бывший «вконтакте») | документация python social auth 0.1.0 | все о фреймворке джанго и его библиотеках

Поддержка сервиса авторизации VK.com (бывший Вконтакте).

Для поддержки аутентификации OAuth2 для приложений VK.com:

  • Создайте свое приложение IFrame на VK.com.

  • В настройках приложения укажите URL вашего IFrame https://mysite.com/complete/vk-app (текущее значение по умолчанию).

  • В настройках приложения укажите первый запрос API. Например:

    См. documentation on available fields.

  • Add 'social_core.backends.vk.VKAppOAuth2' into your SOCIAL_AUTH_AUTHENTICATION_BACKENDS.

  • Настройки заполнения ApplicationID и << 1 >>>:

  • Заполнить user_mode:

    Возможные значения:
  • Добавьте в шаблон входа в систему фрагмент, подобный этому:

Для проверки запустите сервер с помощью sudo./manage.pymysite.com:80, чтобы браузер мог загрузить его, когда VK.com вызовет IFrame URL. Откройте страницу вашего приложения VK.com через http://vk.com/app<app_id>. Теперь вы можете подключиться к приложению и автоматически войти в систему после подключения при посещении страницы приложения.

Более подробную информацию можно найти в разделе authentication for VK.com applications

Python / django – авторизация пользователей через социальные сети в джанго

(бывший «Вконтакте») | Документация Python Social Auth 0.1.0 | Все о фреймворке Джанго и его библиотекахВ этой статье я раскажу, как сделать у себя на сайте авторизацию с помощью социальных сетей и других сервисов.

На сайте заказчика нужно было сделать авторизацию пользователей через соцсети после чего пользователь мог оставлять свои комментарии.

Что нам понадобиться:

  1. Библиотека Django-Allauth
  2. Django Bootstrap 3
  3. Социальные кнопки или эти
  4. Стили для социальных кнопок

Устанавливаем Django-Allauth согласно инструкции.

pipinstalldjango-allauth

В файле Settings.py добавляем все необходимые строки из инструкции и делаем migrate.

Устанавливаем bootstrap и подключаем его в главный шаблон вашего сайта – примерно так.

<link type="text/css" rel="stylesheet" href="{% static 'odrova/bootstrap/css/bootstrap.min.css' %}">

Далее скачиваем социальные кнопки, кидаем распакованый архив в папку static и подключаем в главном шаблоне – примерно так.

<link type="text/css" rel="stylesheet" href="{% static 'odrova/bootstrap-social/bootstrap-social.css' %}">

Далее, скачиваем стили для социальных кнопок и иконок, распаковываем и кидаем в папку static и подключаем в главном шаблоне – примерно так.

<link type="text/css" rel="stylesheet" href="{% static 'odrova/font-awesome/css/font-awesome.css' %}">

Заходим в админку сайта и там должен быть раздел SOCIAL ACCOUNTS.
(бывший «Вконтакте») | Документация Python Social Auth 0.1.0 | Все о фреймворке Джанго и его библиотеках

Чтоб добавить какое либо приложение, его нужно выбрать из списка, которыей находится в инструкции в разделе install. Далее буду показывать на примере Вконтакте.

Добавляем в наш settings.py вконтакте

INSTALLED_APPS = (
    ...
    # The following apps are required:
    'django.contrib.auth',
    'django.contrib.sites',

    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    # ... include the providers you want to enable:
    'allauth.socialaccount.providers.vk',

Далее в админке сайта заходим в социальные приложения и добавляем VK. Но, чтоб его добавить нужно получить id и секретный ключ. Как это сделать, можно посмотреть в инструкции в разделе provaders. В разделе providers находим vk и там будут ссылки на регистрацию своего api.

VK
App registration
    https://vk.com/dev
Development callback URL (“Site address”)
    http://localhost

Переходим по этому адресу https://vk.com/dev и создаем новое приложение. В конечном итоге на выходе у вас должно получиться как у меня на скриншоте ниже. Вы получаете id и секретный ключ.
(бывший «Вконтакте») | Документация Python Social Auth 0.1.0 | Все о фреймворке Джанго и его библиотеках
Далее в админке сайта создаем приложение VK, где и вставляем свой id и секретный ключ.
(бывший «Вконтакте») | Документация Python Social Auth 0.1.0 | Все о фреймворке Джанго и его библиотеках

Ну и в шаблоне выводим примерно так.

  <a class="btn btn-social-icon btn-sm btn-vk" href="{% provider_login_url "vk" method="oauth2" %}">
    <span class="fa fa-vk"></span>
  </a>

Если у вас остались какие либо вопросы, можете писать тут в комментариях.

Как подключить модуль авторизации через соц сеть вконтакте allauth в django?

Уже пол дня не могу подключить модуль авторизации на локальном хосте.

алгоритм действий

1. Установил модуль

2. Создал миграции

3. установил в INSTALLED_APPS

'allauth',                                  # обычная авторизация
    'allauth.account',
    'allauth.socialaccount',                    # авторизация через социальные сети
    'allauth.socialaccount.providers.vk',

4. в setting прописал

# Настройка шаблонов
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')], # указываем в какой дирректории лежат наши шаблоны
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

5. Прописал в setting

# необходимые настройки для модуля авторизации пользователей
AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
    'allauth.account.auth_backends.AuthenticationBackend',
)

6. Прописал в setting

# вместо dummy ставим протокол smtp и тому подобный
EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend'

# Allauth список настроек для модуля авторизации
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_UNIQUE = True
# ACCOUNT_EMAIL_CONFIRMATION_REQUIRED = True                             # обязательно ли подтверждение через электронную почту
ACCOUNT_AUTHENTICATION_METHOD = "username"
ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS = 3                               # время до подтверждения регистрации
ACCOUNT_EMAIL_VERIFICATION = "optional"
ACCOUNT_USERNAME_BLACKLIST = ["admin", "administrator", "moderator"]     # имена которые нельзя использовать при регистрации
ACCOUNT_USERNAME_MIN_LENGTH = 4                                          # минимальное число символов при регистрации
ACCOUNT_USERNAME_REQUIRED = False
LOGIN_REDIRECT_URL = "/"                                                 # куда направить пользователя после авторизации
ACCOUNT_EMAIL_CONFIRMATION_ANONYMOUS_REDIRECT_URL = '/'
# ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION = True

7. Тут не знаю что писать

# Provider specific settings настройки для входа через социальные сети
# SOCIALACCOUNT_PROVIDERS = {
# #     'vk': {
# #         # For each OAuth based provider, either add a ``SocialApp``
# #         # (``socialaccount`` app) containing the required client
# #         # credentials, or list them here:
# #         'APP': {

# #         }
# #     }
# # }

8. Зарегал приложение в вк
получил:
ID приложения ?????????
Защищённый ключ ?????????
Сервисный ключ доступа ???????????
Адрес сайта: указал 127.0.0.1:8000
Базовый домен : 127.0.0.1 и указал local host
Доверенный redirect URI: localhost:8000/accounts/vk/login/callback

9. Зашел от имени админа
Зашел в социальные приложения
Провайдер указал: VK
Имя : VK
Id клиента: указал id Приложения который вк выдал
Секретный ключ: указал Защищённый ключ который выдал клиент.
Sites: во втором столбе которая справа добавил 127.0.0.1:8000

10. в Шаблоне кнопка появляется но при нажатии выводит

{% extends "account/base.html" %}

{% load i18n %}
{% load account socialaccount %}

{% block head_title %}{% trans "Sign In" %}{% endblock %}

{% block content %}


{% load socialaccount %}
{% get_providers as socialaccount_providers %}

  <a class="btn btn-social-icon btn-sm btn-vk" href="http://localhost/accounts/vk/login/callback/">
    <span class="fa fa-vk">gggggggggggggggg</span>
  </a>


<h1>{% trans "Sign In" %}</h1>

{% get_providers as socialaccount_providers %}

{% if socialaccount_providers %}
<p>{% blocktrans with site.name as site_name %}Please sign in with one
of your existing third party accounts. Or, <a href="{{ signup_url }}">sign up</a>
for a {{ site_name }} account and sign in below:{% endblocktrans %}</p>

<div class="socialaccount_ballot">

  <ul class="socialaccount_providers">
    {% include "socialaccount/snippets/provider_list.html" with process="login" %}
  </ul>

  <div class="login-or">{% trans 'or' %}</div>

</div>

{% include "socialaccount/snippets/login_extra.html" %}

{% else %}
<p>{% blocktrans %}If you have not created an account yet, then please
<a href="{{ signup_url }}">sign up</a> first.{% endblocktrans %}</p>
{% endif %}

<form class="login" method="POST" action="{% url 'account_login' %}">
  {% csrf_token %}
  {{ form.as_p }}
  {% if redirect_field_value %}
  <input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
  {% endif %}
  <a class="button secondaryAction" href="{% url 'account_reset_password' %}">{% trans "Forgot Password?" %}</a>
  <button class="primaryAction" type="submit">{% trans "Sign In" %}</button>
</form>

{% endblock %}

При нажатии выводит сообщение
=================================
DoesNotExist at /accounts/vk/login/
SocialApp matching query does not exist.
и куча ошибок

ссылка при нажатии 127.0.0.1:8000/accounts/vk/login/?process=login

Подозреваю на словарь в senng SOCIALACCOUNT_PROVIDERS не знаю как его заполнить.
Помогите пожалуйста )

Обновление аватарок при авторизации

В статье Django Social Auth: now with images имеется пример как через сигналы обновлять аватарку пользователю, на мой вгляд, код служит только для примера.

Регистрации в сетях

Для начала нам надо получить ключи от необходимых социальных сетей, на странице проекта в GitHub есть инструкции для множества социальных сетей, но в свое время у меня были трудности и я решил записать последовательность действий для некоторых из них.

Установка и настройка django-social-auth

Для начала установим приложение:

pip install django-social-auth

Теперь отредактируйте settings.py:

Виджет для вывода кнопочек

Это просто шаблонный inclusion-тег, который выводит ссылочки в виде кнопочек-логотипов социальных сетей, выглядит примерно так:

Похожее:  What the Heck is OAuth? | Okta Developer

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *