Search code examples
pythondjangofacebookdjango-rest-auth

django rest auth facebook code for login


On project I use django-rest-auth for user registration and authentication. Also i added code for facebook login:

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

And in my project urls.py I add

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

But on url localhost:8000/rest-auth/facebook I see form with 2 parameters: Access token(already have) and code. enter image description here My question is next: Can I login via facebook without this code, and if not, how can I get this code without frontend? How can I check work user authentication/registration or not? PS: SocialApp created, facebook app created, app id and app secret added to social app.


Solution

  • Only one of "Access Token" or "Code" field is required. (I have not tested the Code field but the Access Token field works, with the Code field left blank)

    To use Access Token, after the user performs the "Login to Facebook" step on the client side using Facebook javascript SDK, you will receive a response from Facebook which includes "accessToken" for accessing data on Facebook. Simply paste this accessToken into the "Access Token" field and it will automatically login and/or create the user's account from data retrieved from Facebook.

    Obviously you can then perform the same process by posting the access token to the form all in javascript.