Evgenii Legotckoi
Evgenii LegotckoiШілде 16, 2018, 3:15 Т.Ж.

Джанго - 037-сабақ. Әлеуметтік желілер арқылы аутентификацияны қалай қосуға болады. Google+

Сайтта аутентификациялауға болатын екінші әлеуметтік желі Google+ болады.

Мен Django-ның Python Social Auth батареясын орнату және орнату туралы барлық мәліметтерді қарастырмаймын, өйткені ол алдыңғы мақалада қарастырылған. Бірақ бұл жолы байланыс жарты сағатқа созылғанын ескертемін.

Дегенмен, Google API арқылы кіруді орнату ВКонтактеге қарағанда күрделірек болды.


settings.py

Алдымен Google+ арқылы аутентификацияға жауап беретін жаңа сервер жазуыңыз керек.

AUTHENTICATION_BACKENDS = (
    ...
    'social_core.backends.google.GoogleOAuth2',
    'django.contrib.auth.backends.ModelBackend',
)

Екіншіден, API кілті мен құпия кілт үшін айнымалы мәндерді орнату керек

SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = 'XXXXXXXX'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'XXXXXXXXX'

Google API консолінде қолданбаларды орнату

Енді Google+ әлеуметтік желісінің арқасында сайттағы пайдаланушыларды аутентификациялау мүмкіндігін алу үшін Google API консолінде қолданбаны қалай конфигурациялау керектігін анықтайық.

1-қадам – жоба құру

2-қадам - Google+ API қосыңыз

Жобаңыз жасалғаннан кейін сізге сәйкес API, атап айтқанда Google+ API қосылуы керек.

API және қызметтерді қосу бөліміне өтіңіз.

Google+ API интерфейсін тауып, оны қосыңыз

3-қадам - Жобаңызда веб-сайт қолданбасын жасаңыз

Тіркелгі деректері бөліміне өту керек және пайдаланушының тіркелгі деректерін жасау құрама жолағында OAuth клиент идентификаторы тармағын таңдаңыз.

Берілген опциялардан Веб қолданбасын таңдаңыз.

4-қадам – Тіркелгі деректерін сұрау бетін теңшеу

Мұнда сізге электрондық пошта мекенжайын таңдау ұсынылады. әзірлеуші ретінде басқасын қосуға болады.

Келесі - өнімнің атауы.

Ал сайтыңыздың басты бетінің URL мекенжайы, қалғаны міндетті емес

5-қадам – Google+ API интерфейсіне қолданбаға кіруді теңшеу

ВКонтакте-ден айырмашылығы, Google+ API жағдайында ол сұраудың қайдан келетінін және сәтті авторизацияланған жағдайда пайдаланушының қайда бағытталатынын мұқият басқарады. Мұнда параметрдің бір нюансы жатыр.

Дәл осы параметрлерде бізге қажет кілттер орналасқан.

SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = 'Идентификатор клиента'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'Секрет клиента'

Қосымша көздер және қайта бағыттаулар.

Рұқсат етілген көздерде, мысалы, сайтыңыздың мекенжайын көрсету керек

https://example.com

Бірақ рұқсат етілген қайта бағыттау URI мекенжайлары аутентификация сәтті өткен жағдайда пайдаланушыны қайда қайта бағыттау керектігін білдіреді. Және бұл жерде сіз сайттағы әлеуметтік аутентификация модулін қалай қосқаныңызды ескеруіңіз керек. Менің жағдайда ол сайттың түбіріне қосылған, сондықтан біз бұл мекенжайды аламыз

http://example.com/complete/google-oauth2/

Бұл орнатылмаса, аутентификация дұрыс жұмыс істемейді, себебі Google+ API пайдаланушыға аутентификация деректерімен сайтыңызға сәтті өтуге мүмкіндік бермейді.

Үлгі

Үлгіде авторизация URL мекенжайы бар белгішені алу үшін ұқсас кодты қосуға болады

<a href="{% url 'social:begin' 'google-oauth2' %}"><img src="/static/lgoogle.png" class="avatar-3" data-toggle="tooltip" title="{% trans 'Login via Google+' %}"></a>

Әр түрлі әлеуметтік желілердегі пайдаланушы аутентификациясы

Сондай-ақ, егер ол әртүрлі әлеуметтік желілер арқылы сайттағы аккаунтқа кірсе, пайдаланушыны анықтау мәселесі туындауы мүмкін, мысалы, ол бүгін ВКонтакте арқылы кірді, ал ертең ол Google+ қолданбасын пайдаланады.

Содан кейін бір пайдаланушының бірнеше тіркелгілері пайда болмас үшін, әлеуметтік желі арқылы аутентификациядан өткен пайдаланушы туралы ақпаратты тексеру керек, ал егер ол басқа әлеуметтік желі арқылы сайтқа кірген болса, оның аутентификациясын бұрынғымен байланыстыру керек. тіркелгі жасалды.

Бұл тексеру бір параметрмен Django Python Social Auth бағдарламасында қосылған.

SOCIAL_AUTH_PIPELINE = (
    'social_core.pipeline.social_auth.associate_by_email',
)

Бұл жағдайда пайдаланушының электрондық поштасы туралы ақпарат пайдаланылады.

Django үшін VDS хостингін ұсынамын TIMEWEB

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

Владислав Меленчук
  • Шілде 29, 2021, 2:49 Т.Ж.

Какую ссылку в гулге юзать для редиректа oauth2?

Пікірлер

Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
Кіріңіз немесе Тіркеліңіз
OI
  • Ora Iro
  • Жел. 24, 2024, 6:38 Т.Ж.

C++ - Тест 001. Первая программа и типы данных

  • Нәтиже:40ұпай,
  • Бағалау ұпайлары-8
AD

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:50ұпай,
  • Бағалау ұпайлары-4
m
  • molni99
  • Қаз. 26, 2024, 1:37 Т.Ж.

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:80ұпай,
  • Бағалау ұпайлары4
Соңғы пікірлер
ИМ
Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Evgenii Legotckoi
Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
A
ALO1ZEҚаз. 19, 2024, 8:19 Т.Ж.
Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
d
dblas5Шілде 5, 2024, 11:02 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Енді форумда талқылаңыз
Evgenii Legotckoi
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
t
tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
NSProject
NSProjectМаусым 4, 2022, 3:49 Т.Ж.
Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
9
9AnonimҚаз. 25, 2024, 9:10 Т.Ж.
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

Бізді әлеуметтік желілерде бақылаңыз