Evgenii Legotckoi
Evgenii Legotckoi16. Juli 2018 03:15

Django - Tutorial 037. So fügen Sie die Authentifizierung über soziale Netzwerke hinzu. Google+

Das zweite soziale Netzwerk, über das die Authentifizierung auf der Website möglich sein wird, wird Google+ sein.

Ich werde nicht auf alle Details der Einrichtung und Installation der Python Social Auth-Batterie von Django eingehen, da sie im vorherigen Artikel behandelt wurde. Aber ich stelle fest, dass die Verbindung diesmal nur eine halbe Stunde dauerte.

Allerdings war die Einrichtung des Zugriffs über die Google-API komplizierter als bei VKontakte.


settings.py

Zuerst müssen Sie ein neues Backend registrieren, das für die Authentifizierung über Google+ verantwortlich ist.

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

Zweitens müssen Sie Variablen für den API-Schlüssel und den geheimen Schlüssel festlegen

SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = 'XXXXXXXX'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'XXXXXXXXX'

Richten Sie eine Anwendung in der Google API-Konsole ein

Lassen Sie uns nun herausfinden, wie die Anwendung in der Google API-Konsole konfiguriert wird, um Benutzer auf der Website dank des sozialen Netzwerks Google+ authentifizieren zu können.

Schritt 1 - Erstellen Sie ein Projekt

Schritt 2 - Aktivieren Sie die Google+ API

Nachdem Ihr Projekt erstellt wurde, müssen Sie die entsprechende API, nämlich die Google+ API, verbinden.

Gehen Sie zum Abschnitt APIs und Dienste aktivieren

Suchen Sie die Google+ API und aktivieren Sie sie

Schritt 3 - Erstellen Sie eine Website-Anwendung in Ihrem Projekt

Sie müssen zum Abschnitt Anmeldeinformationen gehen und in der Combobox Anmeldeinformationen erstellen des Benutzers das Element OAuth-Client-ID auswählen.

Wählen Sie aus den bereitgestellten Optionen Webanwendung aus.

Schritt 4 – Anpassen der Anmeldeinformationsanforderungsseite

Hier werden Sie aufgefordert, Ihre E-Mail-Adresse auszuwählen. Als Entwickler können Sie weitere hinzufügen.

Als nächstes kommt der Name des Produkts.

Und die URL der Hauptseite Ihrer Website, der Rest ist optional

Schritt 5 – Konfigurieren des App-Zugriffs auf die Google+ API

Anders als bei VKontakte wird bei der Google+ API genauer kontrolliert, woher die Anfrage kommt und wohin der Nutzer bei erfolgreicher Autorisierung weitergeleitet wird. Hier liegt eine Nuance der Einstellung.

In diesen Einstellungen befinden sich die Schlüssel, die wir benötigen.

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

Weitere Quellen und Weiterleitungen.

In zugelassenen Quellen müssen Sie beispielsweise die Adresse Ihrer Website angeben

https://beispiel.com

Aber erlaubte Umleitungs-URIs implizieren, wohin der Benutzer im Falle einer erfolgreichen Authentifizierung umgeleitet werden soll. Und hier müssen Sie berücksichtigen, wie Sie das soziale Authentifizierungsmodul auf der Website verbunden haben. In meinem Fall ist es mit dem Stammverzeichnis der Site verbunden, sodass wir diese Adresse erhalten

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

Wenn dies nicht festgelegt ist, funktioniert die Authentifizierung nicht ordnungsgemäß, da die Google+ API dem Benutzer nicht erlaubt, mit Authentifizierungsdaten erfolgreich zu Ihrer Website zu navigieren.

Schablone

In der Vorlage können Sie einen ähnlichen Code hinzufügen, um ein Symbol mit einer Autorisierungs-URL zu erhalten

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

Benutzerauthentifizierung aus verschiedenen sozialen Netzwerken

Es kann auch ein Problem bei der Identifizierung eines Benutzers geben, wenn er sich über verschiedene soziale Netzwerke bei einem Konto auf einer Website anmeldet. Beispielsweise hat er sich heute über VKontakte angemeldet und morgen wird er Google+ verwenden.

Damit nicht mehrere Konten eines Benutzers angezeigt werden, müssen Informationen über den Benutzer überprüft werden, der über ein soziales Netzwerk authentifiziert ist, und wenn er bereits über ein anderes soziales Netzwerk auf die Website zugegriffen hat, dann seine Authentifizierung mit der vorherigen verknüpfen erstelltes Konto.

Diese Prüfung wird in Djangos Python Social Auth mit einer einzigen Einstellung aktiviert.

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

In diesem Fall werden Informationen über die E-Mail des Benutzers verwendet.

Für Django empfehle ich VDS-Hosting TIMEWEB

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.

Magst du es? In sozialen Netzwerken teilen!

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

Kommentare

Nur autorisierte Benutzer können Kommentare posten.
Bitte Anmelden oder Registrieren
Letzte Kommentare
ИМ
Игорь Максимов5. Oktober 2024 07:51
Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
d
dblas55. Juli 2024 11:02
QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
k
kmssr8. Februar 2024 18:43
Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
EVA
EVA25. Dezember 2023 10:30
Boost - statisches Verknüpfen im CMake-Projekt unter Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
Jetzt im Forum diskutieren
J
JacobFib17. Oktober 2024 03:27
добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
JW
Jhon Wick1. Oktober 2024 15:52
Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
КГ
Кирилл Гусарев27. September 2024 09:09
Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
F
Fynjy22. Juli 2024 04:15
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …

Folgen Sie uns in sozialen Netzwerken