Сайтта аутентификациялауға болатын екінші әлеуметтік желі 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
Какую ссылку в гулге юзать для редиректа oauth2?