Facebook арқылы сайттағы авторизацияны күшейтті.
Сонымен қатар, мен тағы бірнеше тұзақ жинадым.
Facebook-ке дейін мен VKontakte және Google әлеуметтік желілері арқылы авторизацияны бұрап алдым. Бұл жерде маған құпиялылық саясаты бетін жасау керек болды, себебі Facebook бұл бетті қажет етеді және пайдаланушы келісімін де талап етеді, бірақ мен құпиялылық саясаты бетін бердім. Сайттың өсуімен мен толыққанды пайдаланушы келісімі бетін қосамын деп ойлаймын, бірақ бұл қашан болатыны белгісіз. Дегенмен, сайт ережелері жеткілікті түрде егжей-тегжейлі сипатталған.
Сондай-ақ сайтта https болуы керек деген қатаң талапқа тап болдым. Жалпы, менде Let`s Encrypt сайтынан https бар екенін ескерсек, менде ешқандай проблема болады деп ойламадым, бірақ . белгілі болғандай, әдепкі бойынша django-social-auth HTTP протоколымен қайтару мекенжайын жасайды және HTTPS пайдалану үшін оны параметрлерде көрсету керек.
Енді оның қалай жасалғанын көрейік.
Тіркеу өтінімдері
Аутентификацияны пайдалану үшін қолданбаны тіркеу қажет. Мен қосымшаны жасаудың негізгі мәліметтеріне кірмеймін. Бірақ мен қосымшаның негізгі параметрлерін көрсетемін.
Сіз қолданба идентификаторын және қолданба құпия кілтін аласыз.
Қолданба доменін, сондай-ақ құпиялылық саясатының URL мекенжайын және пайдаланушы келісімінің URL мекенжайын көрсетіңіз.
Содан кейін OAuth арқылы тіркеуді қайта бағыттау үшін url мекенжайын көрсетіңіз.
settings.py
settings.py файлына қажетті параметрлерді қосамыз.
Қолданба идентификаторы мен құпия кілтті орнатыңыз. Сондай-ақ пайдаланушы профилінен не алғымыз келеді. Маған осы кезеңде тек электрондық пошта қажет.
SOCIAL_AUTH_FACEBOOK_KEY = 'XXXXXXXXX' SOCIAL_AUTH_FACEBOOK_SECRET = 'XXXXXXXXX' SOCIAL_AUTH_FACEBOOK_SCOPE = ['email']
Сондай-ақ дәл HTTPS қолданғымыз келетінін көрсетіңіз. Әйтпесе, Facebook ант береді.
SOCIAL_AUTH_REDIRECT_IS_HTTPS = True
Аутентификация үшін Backend параметрін көрсетіңіз.
AUTHENTICATION_BACKENDS = ( ... 'social_core.backends.facebook.FacebookOAuth2', ... )
Аутентификация үшін URL мекенжайын көрсетіңіз
<a href="{% url 'social:begin' 'facebook' %}">Facebook</a>
Добрый день. А проверить работоспособность локально как-то можно не указывая реальнй сайт (еще в разработке)
Добрый день.
Поппробуйте домен localhost, а url соответственно http://localhost
Возможно, потребуется указать порт. Например, так http://localhost:8000
как быть с такой ошибкой: конечный uri не внесен в белый список в разделе Клиентские настройки OAuth?
FaceBook по умолчанию направляет на https, у вас видимо http протокол. Исправьте протокол в настройках.
данная строчка у меня есть: SOCIAL_AUTH_REDIRECT_IS_HTTPS = True
адрес сайта uri перенасправления пишу так: https://мойсайт.site/
где брать действительный uri перенаправления?
Вы у себя urls прописывали?
В статье по настройке авторизации для ВКонтакте есть базовый мануал .
Да, конечно VK работает, настраивал по вашему мануалу, а тут прям какойто ступор: https://amadowshop.site/auth/register/
Вы прописывали url в действительные uri перенаправления так?
прописал, та же ошибка ...(((
ох тыж, как глубоко запихали авторизацию.
У вас по ходу такой url формируется
да, спасибо, этот урл зарабтал, методом перебеора в итоге поймал )))
https://amadowshop.site/auth/verify/vk/oauth2/complete/facebook/
ну я просто глянул у вас страницу авторизации и обнаружил, что вы очень глубоко запихали include('social_django.urls')
А вообще, вот эта часть выглядит некрасиво в вашем url auth/verify/vk/oauth2/ . Наличие упоминания vk там вообще ни к чему
url подкорректировал, но теперь ошибка и адрес сменился на https://amadowshop.site/auth/verify/login/facebook/
не вижу здесь проблемы, поменяйте url для callback в приложения oauth в социальных сетях
а это где? сейчас ошибка в debag такая:
Page not found (404)
Request Method: GET
Request URL: http://amadowshop.site/accounts/profile/
серьезно? Эта ошибка 404 уже даже не относится к данному вопросу.
В каких-то urls в вашем проекте.
Вопросы, которые не относятся непосредственно к статье, задавайте, пожалуйста на форуме . Оффтопы не нужно делать.