Javascript Django的Facebook登录和url重定向?

Javascript Django的Facebook登录和url重定向?,javascript,python,django,facebook,Javascript,Python,Django,Facebook,我已经实现了一个Django应用程序,它有一个用户登录/注册页面。我想让facebook的用户id也可以登录到我的应用程序。在这样做的过程中,我遵循了这个链接。在这个链接的帮助下,我现在也可以使用Facebook id登录。点击facebook登录按钮,弹出facebook登录页面;赋予用户名n passw,使其登录facebook。但在登录后,该页面也被重定向回我的主页。我需要将它重定向到其他url,比如。有人能帮我解决这个问题吗。我将粘贴用于django登录的html部分 html <

我已经实现了一个Django应用程序,它有一个用户登录/注册页面。我想让facebook的用户id也可以登录到我的应用程序。在这样做的过程中,我遵循了这个链接。在这个链接的帮助下,我现在也可以使用Facebook id登录。点击facebook登录按钮,弹出facebook登录页面;赋予用户名n passw,使其登录facebook。但在登录后,该页面也被重定向回我的主页。我需要将它重定向到其他url,比如。有人能帮我解决这个问题吗。我将粘贴用于django登录的html部分

html

<body>
     <div id="fb-root"></div>
      <script src="http://connect.facebook.net/en_US/all.js"></script>
      <script>
         FB.init({ 
            appId:'114322105313139', cookie:true,
            status:true, xfbml:true 
         });
      </script>


  <fb:login-button>Login with Facebook</fb:login-button>

</body>

这段代码看起来就像FB的HTML。如果需要更多帮助,您需要更好地了解Django Auth结构

你前面还有好几步要走。如果我是你,我会寻找一种容易整合的体验

编辑: 作为包含您的Settings.py的后续操作,假设您已经阅读了文档以及SocialAuth自述文件,您需要为fb的身份验证回调url设置适当的控制器

之后,将这些SocialAuth视图挂接到当前的身份验证过程中:

def facebook_login(request):
    """
    Facebook login page
    """
    if request.REQUEST.get("device"):
        device = request.REQUEST.get("device")
    else:
        device = "user-agent"

    params = {}
    params["client_id"] = FACEBOOK_APP_ID
    params["redirect_uri"] = request.build_absolute_uri(reverse("socialauth_facebook_login_done"))

    url = "https://graph.facebook.com/oauth/authorize?"+urllib.urlencode(params)

    return HttpResponseRedirect(url)

def facebook_login_done(request):
    user = authenticate(request=request)

    if not user:
        request.COOKIES.pop(FACEBOOK_API_KEY + '_session_key', None)
        request.COOKIES.pop(FACEBOOK_API_KEY + '_user', None)

        # TODO: maybe the project has its own login page?
        logging.debug("SOCIALAUTH: Couldn't authenticate user with Django, redirecting to Login page")
        return HttpResponseRedirect(reverse('socialauth_login_page'))

    login(request, user)

    logging.debug("SOCIALAUTH: Successfully logged in with Facebook!")

    if request.GET.get('next'):
        return HttpResponseRedirect(request.GET.get('next'))
    else:
        return HttpResponseRedirect(LOGIN_REDIRECT_URL)

我还添加了我的settings.py。你现在可以检查一下吗?你也可以共享settings.py吗。
def facebook_login(request):
    """
    Facebook login page
    """
    if request.REQUEST.get("device"):
        device = request.REQUEST.get("device")
    else:
        device = "user-agent"

    params = {}
    params["client_id"] = FACEBOOK_APP_ID
    params["redirect_uri"] = request.build_absolute_uri(reverse("socialauth_facebook_login_done"))

    url = "https://graph.facebook.com/oauth/authorize?"+urllib.urlencode(params)

    return HttpResponseRedirect(url)

def facebook_login_done(request):
    user = authenticate(request=request)

    if not user:
        request.COOKIES.pop(FACEBOOK_API_KEY + '_session_key', None)
        request.COOKIES.pop(FACEBOOK_API_KEY + '_user', None)

        # TODO: maybe the project has its own login page?
        logging.debug("SOCIALAUTH: Couldn't authenticate user with Django, redirecting to Login page")
        return HttpResponseRedirect(reverse('socialauth_login_page'))

    login(request, user)

    logging.debug("SOCIALAUTH: Successfully logged in with Facebook!")

    if request.GET.get('next'):
        return HttpResponseRedirect(request.GET.get('next'))
    else:
        return HttpResponseRedirect(LOGIN_REDIRECT_URL)