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?

Пікірлер

Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
Кіріңіз немесе Тіркеліңіз
Г

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

  • Нәтиже:66ұпай,
  • Бағалау ұпайлары-1
t

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

  • Нәтиже:33ұпай,
  • Бағалау ұпайлары-10
t

Qt - Тест 001. Сигналы и слоты

  • Нәтиже:52ұпай,
  • Бағалау ұпайлары-4
Соңғы пікірлер
G
GoattRockҚыр. 3, 2024, 1:50 Т.Қ.
Linux жүйесінде файлдарды қалай көшіруге болады Задумывались когда-нибудь о том, как мы привыкли доверять свои вещи службам грузоперевозок? Сейчас такие услуги стали неотъемлемой частью нашей жизни, особенно когда речь идет о переездах между …
d
dblas5Шілде 5, 2024, 11:02 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
k
kmssrАқп. 8, 2024, 6:43 Т.Қ.
Qt Linux - Сабақ 001. Linux астында Autorun Qt қолданбасы как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Анатолий КононенкоАқп. 5, 2024, 1:50 Т.Ж.
Qt WinAPI - Сабақ 007. Qt ішінде ICMP Ping арқылы жұмыс істеу Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Енді форумда талқылаңыз
Evgenii Legotckoi
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
F
FynjyШілде 22, 2024, 4:15 Т.Ж.
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
BlinCT
BlinCTМаусым 25, 2024, 1 Т.Ж.
Нарисовать кривую в qml Всем привет. Имеется Лист листов с тосками, точки получаны интерполяцией Лагранжа. Вопрос, как этими точками нарисовать кривую? ChartView отпадает сразу, в qt6.7 появился новый элемент…
BlinCT
BlinCTМамыр 5, 2024, 5:46 Т.Ж.
Написать свой GraphsView Всем привет. В Qt есть давольно старый обьект дял работы с графиками ChartsView и есть в 6.7 новый но очень сырой и со слабым функционалом GraphsView. По этой причине я хочу написать х…
Evgenii Legotckoi
Evgenii LegotckoiМамыр 2, 2024, 2:07 Т.Қ.
Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.

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