django rest auth код facebook для входа в систему

В проекте я использую django-rest-auth для регистрации и аутентификации пользователей. Также я добавил код для входа в facebook:

from allauth.socialaccount.providers.facebook.views import FacebookOAuth2Adapter
from rest_auth.registration.views import SocialLoginView

class FacebookOAuth2AdapterFixed(FacebookOAuth2Adapter):

    def __init__(self):
        pass


class FacebookLogin(SocialLoginView):
    adapter_class = FacebookOAuth2Adapter

И в своем проекте urls.py я добавляю

url(r'^rest-auth/facebook/$', FacebookLogin.as_view(), name='fb_login'),

Но на url localhost: 8000 / rest-auth / facebook я вижу форму с двумя параметрами: токен доступа (уже есть) и код. введите описание изображения здесь У меня следующий вопрос: могу ли я войти в систему через facebook без этого кода, а если нет, как я могу получить этот код без внешнего интерфейса? Как я могу проверить аутентификацию / регистрацию рабочего пользователя или нет? PS: SocialApp создано, приложение facebook создано, идентификатор приложения и секрет приложения добавлены в социальное приложение.


person Simple runner    schedule 08.07.2016    source источник
comment
Вы не входите с помощью кода или токена доступа. Когда пользователя отправляют в диалоговое окно входа в FB, а затем перенаправляют обратно в ваше приложение, в ваше приложение передается код в качестве параметра GET, и ваше приложение затем должно пойти и обменять его на токен доступа. Затем этот токен доступа можно использовать для выполнения запросов API. Я не знаю, почему у вас есть форма для ручного ввода любого из этих значений; но это не то, как обычно работает вход в FB.   -  person CBroe    schedule 08.07.2016
comment
Вы получили ответ на свой вопрос? У меня такая же дилемма.   -  person Jadav Bheda    schedule 26.08.2016
comment
Нет, не знаю. получил ответ на этот вопрос.   -  person Simple runner    schedule 27.08.2016


Ответы (2)


Требуется только одно из полей «Токен доступа» или «Код». (Я не тестировал поле «Код», но поле «Токен доступа» работает, а поле «Код» остается пустым)

Чтобы использовать токен доступа, после того, как пользователь выполнит шаг «Войти в Facebook» на стороне клиента с помощью Facebook javascript SDK, вы получите ответ от Facebook, который включает «accessToken» для доступа к данным на Facebook. Просто вставьте этот accessToken в поле «Access Token», и он автоматически войдет в систему и / или создаст учетную запись пользователя на основе данных, полученных из Facebook.

Очевидно, затем вы можете выполнить тот же процесс, разместив токен доступа в форме на javascript.

person python1981    schedule 28.11.2016

В поле токена доступа передайте токен доступа пользователя, который вы получите на панели управления разработчика Facebook (создание и отладка), поле кода можно оставить пустым. Он создаст пользователя в вашем приложении и вернет токен JWT с данными пользователя.

person PyMonk    schedule 25.09.2020