我想通过 twitter、facebook、openid、yahoo、google 使用单个应用程序登录。
所以我选择 django-socialauth
我读了这篇文章:django-socialauth-login-via-twitter-facebook-openid-yahoo-google/
但是当我下载代码并运行它时,我找不到 facebook 按钮,
我能做些什么 ?
谢谢
这是我的演示图像:
这是作者的演示:这里
我想通过 twitter、facebook、openid、yahoo、google 使用单个应用程序登录。
所以我选择 django-socialauth
我读了这篇文章:django-socialauth-login-via-twitter-facebook-openid-yahoo-google/
但是当我下载代码并运行它时,我找不到 facebook 按钮,
我能做些什么 ?
谢谢
这是我的演示图像:
这是作者的演示:这里
所以我不得不稍微调整他们的视图代码才能让它工作。查看socialauth.views,您会看到我们正在从设置文件中获取属性FACEBOOK_APP_ID 。这很好。
查看socialauth/login_page.html模板,有一个部分:
{% if FACEBOOK_APP_ID %}
<div id="facebook">
<p><fb:login-button perms="{{ login_button_perms }}"></fb:login-button></p>
</div>
{% endif %}
现在,这似乎正在访问变量 FACEBOOK_APP_ID。当然,我们在socialauth.views中获得了该属性。然而,我们有一个问题。我们从不将变量暴露给模板(这必须手动完成,记得吗?)。所以,我们替换旧的login_page 视图:
def login_page(request):
return render_to_response('socialauth/login_page.html',
{'next': request.GET.get('next', LOGIN_REDIRECT_URL)},
context_instance=RequestContext(request))
和:
def login_page(request):
return render_to_response('socialauth/login_page.html', {
'next': request.GET.get('next', LOGIN_REDIRECT_URL),
'FACEBOOK_APP_ID': FACEBOOK_APP_ID,
},
context_instance=RequestContext(request))
请注意,唯一的区别在于“FACEBOOK_APP_ID”行:FACEBOOK_APP_ID。