如何设置django-social-auth进行网站身份验证

时间:2011-11-01 05:51:57

标签: django facebook authentication

是否有任何简单且完全记录的配置django-social-auth(https://github.com/omab/django-social-auth.git)的方法?文档是如此不完整。模板丢失了,怎么了所有网址?

1 个答案:

答案 0 :(得分:2)

首先你必须在用户点击的地方生成de url,在args中放入回调的url:



    args = {
        'client_id': settings.FACEBOOK_APP_ID,
        'scope': settings.FACEBOOK_SCOPE,
        'redirect_uri': request.build_absolute_uri('/authentication_callback'),
    }

    HttpResponseRedirect('https://www.facebook.com/dialog/oauth?' + urllib.urlencode(args)


回调代码:



    token = request.GET.get('code')

    args = {
            'client_id': settings.FACEBOOK_APP_ID,
            'client_secret': settings.FACEBOOK_APP_SECRET,
            'redirect_uri': request.build_absolute_uri('/authentication_callback'),
            'code': token,
    }
    # Get a legit access token
    target = urllib.urlopen('https://graph.facebook.com/oauth/access_token?' + urllib.urlencode(args)).read()
    response = cgi.parse_qs(target)
    access_token = response['access_token'][-1]

    # Read the user's profile information
    fb_profile = urllib.urlopen('https://graph.facebook.com/me?access_token=%s' % access_token)
    fb_profile = json.load(fb_profile)

    # These is the info of the facebook account:
    first=fb_profile['first_name']
    last=fb_profile['last_name']
    email=fb_profile['email']
    fb_id=fb_profile['id']


希望这有帮助