使用 django-socialauth 找不到 Facebook 按钮

发布于 2024-10-07 05:02:49 字数 632 浏览 3 评论 0原文

我想使用单个应用程序通过 twitter、facebook、openid、yahoo、google 登录。

所以我选择 django-socialauth

我读了这篇文章: django-socialauth-login-via-twitter-facebook-openid-yahoo-google/

但是当我下载代码并运行它时,我找不到 facebook 按钮,

我该怎么办?

谢谢,

这是我的演示图片:

alt text

这是作者的演示:这里

alt text

i want to Login via twitter, facebook, openid, yahoo, google using a single app.

so i choose django-socialauth

i read this artile : django-socialauth-login-via-twitter-facebook-openid-yahoo-google/

but when i download the code , and run it , i cant find the facebook button ,

what can i do ?

thanks

this is my demo image:

alt text

and this is the author's demo :here

alt text

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凉城已无爱 2024-10-14 05:02:49

因此,我必须稍微调整他们的视图代码才能使其正常工作。查看 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。

So I had to slightly tweak their view code in order to get this to work. Looking in socialauth.views, you see that we're getting the attribute FACEBOOK_APP_ID from our settings file. This is good.

Looking at the socialauth/login_page.html template, there's a section:

{% if FACEBOOK_APP_ID %}
  <div id="facebook">
    <p><fb:login-button perms="{{ login_button_perms }}"></fb:login-button></p>
  </div>      
{% endif %}

Now, this appears to be accessing the variable FACEBOOK_APP_ID. Of course, we get that attribute in socialauth.views. However, we've got one problem. We never expose the variable to the template (which has to be done manually, remember?). So, we replace the old login_page view:

def login_page(request):
  return render_to_response('socialauth/login_page.html', 
                          {'next': request.GET.get('next', LOGIN_REDIRECT_URL)}, 
                          context_instance=RequestContext(request))

with:

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))

Note that the only difference is in the line 'FACEBOOK_APP_ID': FACEBOOK_APP_ID.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文