【问题标题】:How to use python-social-auth with google only?如何仅将 python-social-auth 与 google 一起使用?
【发布时间】:2016-05-23 21:21:14
【问题描述】:

我正在尝试将 google 身份验证添加到我的项目中

我安装了它:

pip install python-social-auth

并在settings.py中添加:

SOCIAL_AUTH_USER_MODEL = 'accounts.CustomUser'##

SOUTH_MIGRATION_MODULES = {
    'default': 'social.apps.django_app.default.south_migrations'
    }

AUTHENTICATION_BACKENDS = (
    'myproject.middleware.AuthenticationCMSBackend',##
    'social.backends.google.GoogleOpenId',
    'social.backends.google.GoogleOAuth2',
    'django.contrib.auth.backends.ModelBackend',
)

LOGIN_REDIRECT_URL = '/'

SOCIAL_AUTH_GOOGLE_OAUTH2_KEY  = '507847...m.apps.googleusercontent.com'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'SEt-6...0j3'"""

TEMPLATE_CONTEXT_PROCESSORS =  (
    ...
    'django.core.context_processors.request',
    'social.apps.django_app.context_processors.backends',
    'social.apps.django_app.context_processors.login_redirect',
)

至于 SOCIAL_AUTH_GOOGLE_OAUTH2_KEY 和 secert,我去了 https://console.developers.google.com/apis/credentials 并使用 localhost url 创建了它们(现在用于测试)

我在模板中这样称呼它:

<a href="{% url 'social:begin' 'google-oauth2' %}"> login </a>

但我收到此错误:

找不到后端

我做错了什么?

下一步,我想确保只有我验证的用户才能验证任何拥有谷歌帐户的人,怎么做?

【问题讨论】:

    标签: django google-authentication python-social-auth django-1.6


    【解决方案1】:

    在你的setting.py中

    AUTHENTICATION_BACKENDS = (
     # Google
     'social_core.backends.google.GoogleOAuth2',
     # Django
     #'django.contrib.auth.backends.ModelBackend',
    )
    # Google Keys
    SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = 'KEY' # Client ID
    SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'SECRET_' # Client secret
    
    SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/'
    

    上下文处理器

    'context_processors': [
                    ...
                    'social.apps.django_app.context_processors.backends',
                    'social.apps.django_app.context_processors.login_redirect',
                ],
    

    urls.py

    urlpatterns = [
    ...
    url('social/', include('social.apps.django_app.urls', namespace='social')),
    ...
    ]
    

    在您的模板中添加。

    <p><a class="btn btn-lg btn-danger btn-block" href="{% url 'social:begin' 'google-oauth2' %}">Entrar con la cuenta de Google</a></p>
    

    【讨论】:

    • 这正是我在发布时所做的!有什么区别?我应该更正什么?
    • 在哪里可以找到SOCIAL_AUTH_GOOGLE_OAUTH2_KEY?在 google api 控制台中我有 Client IDClient secret,Creation date 但我没有 auth key? @erajuan @cinoch
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 2021-05-04
    • 2013-01-14
    • 1970-01-01
    • 2015-09-07
    • 2021-09-03
    • 1970-01-01
    相关资源
    最近更新 更多