【问题标题】:Cannot pass APP ID while using Django Social Auth使用 Django Social Auth 时无法传递 APP ID
【发布时间】:2013-12-04 13:36:04
【问题描述】:

我正在尝试启用通过 facebook、twitter 和 Google Open Auth 2 登录。我正在使用主文档 https://django-social-auth.readthedocs.org/en/latest/index.html。我也用过http://c2journal.com/2013/01/24/social-logins-with-django/

我已经完成了所有必要的配置。这是我的 settings.py

....

AUTHENTICATION_BACKENDS = (
'social_auth.backends.twitter.TwitterBackend',
'social_auth.backends.facebook.FacebookBackend',
'social_auth.backends.google.GoogleOAuthBackend',
'social_auth.backends.google.GoogleOAuth2Backend',
'social_auth.backends.google.GoogleBackend',
'django.contrib.auth.backends.ModelBackend',
)

.....

TEMPLATE_CONTEXT_PROCESSORS = (
"social_auth.context_processors.social_auth_by_type_backends",
"django.contrib.auth.context_processors.auth",
 )

......

SOCIAL_AUTH_ENABLED_BACKENDS = ('google','facebook','twitter')

.....

FACEBOOK_APP_ID='**********'
FACEBOOK_API_SECRET='**********************'
FACEBOOK_APP_NAMESPACE = '********_app'
FACEBOOK_EXTENDED_PERMISSIONS = ['email']

GOOGLE_OAUTH2_CLIENT_ID = '***************'
GOOGLE_OAUTH2_CLIENT_SECRET  = '**************************'

TWITTER_CONSUMER_KEY = '***************'
TWITTER_CONSUMER_SECRET = '**********************'

........

INSTALLED_APPS = (
    ............
    'social_auth',
)

我也在我的 urls.py 中添加了 social-auth

(r'^accounts/login/$', 'django.contrib.auth.views.login',
 {'template_name': 'login.html'}),
(r'^accounts/logout/$', 'django.contrib.auth.views.logout_then_login'),

.....

urlpatterns = patterns('',
  ...
    url(r'', include('social_auth.urls')),
  ...
)

在我的 login.html 页面上,这是我调用链接的方式

  <div>Login with <a href="{% url socialauth_begin 'facebook' %}">Facebook</a></div>
  </div>Login with <a href="{% url socialauth_begin 'twitter' %}">Twitter</a></div>
  </div>Login with <a href="{% url socialauth_begin 'google-oauth2' %}">Google</a></div>

但问题是,每次我尝试通过这些服务中的任何一个登录时,APP Id 似乎都丢失了。

我在 Facebook Invalid App ID: None 和 twitter 上收到此错误 只有 unicode 对象是可转义的。没有类型。。谷歌也不起作用,但它告诉我我不能使用原始 IP 地址。我正在使用服务器 IP 地址。请帮忙。

【问题讨论】:

    标签: django facebook twitter django-socialauth


    【解决方案1】:

    我发现了问题所在。我已经安装了 python social auth 然后安装了 django-social auth。我的应用程序仍在使用 python-social-auth 包。

    使用命名配置变量的python-social-Auth语法,我添加了前缀

    SOCIAL_AUTH_
    

    到我的配置变量,使它们现在看起来像这样

    SOCIAL_AUTH_FACEBOOK_SECRET='*******************'
    SOCIAL_AUTH_FACEBOOK_APP_NAMESPACE = '*******'
    SOCIAL_AUTH_FACEBOOK_EXTENDED_PERMISSIONS = ['email']
    
    SOCIAL_AUTH_TWITTER_KEY  = '********'
    SOCIAL_AUTH_TWITTER_SECRET = '************'
    
    
    SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '*************************************'
    SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET  = '****************'
    

    我现在可以登录了。谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-31
      • 2020-05-16
      • 2012-01-14
      • 2020-09-23
      • 2014-12-25
      • 1970-01-01
      • 2017-08-31
      • 2017-05-18
      相关资源
      最近更新 更多