0

twitter、facebook、openid、yahoo、google をひとつのアプリでログインしたい。

だから私はdjango-socialauthを選びます

私はこの記事を読みました: django-socialauth-login-via-twitter-facebook-openid-yahoo-google/

しかし、コードをダウンロードして実行すると、facebook ボタンが見つかりません。

私に何ができる ?

ありがとう

これは私のデモ画像です:

代替テキスト

これは作者のデモです:ここ

代替テキスト

4

1 に答える 1

0

そのため、これを機能させるには、ビューコードを少し調整する必要がありました。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でその属性を取得します。ただし、1つの問題があります。変数をテンプレートに公開することはありません(手動で行う必要があります、覚えていますか?)。したがって、古い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。

于 2010-12-23T08:53:10.797 に答える