我应该如何向我的Django网站添加Google+ API登录?
首先,你必须为Google+创建OAuth凭据。
安装python-social-auth使用pip 设置适当的Django设置:
装python-social-auth
'social.apps.django_app.default'到INSTALLED_APPS:
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY和SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET
“ .apps.googleusercontent.com”
'social.backends.google.GoogleOAuth2'
AUTHENTICATION_BACKENDS = ( 'social.backends.google.GoogleOAuth2', 'django.contrib.auth.backends.ModelBackend')
如果你与从Google+获得的信息有关,建议你定义一个函数:
def save_profile(backend, user, response, *args, **kwargs): if backend.name == "google-oauth2": # do something
这里user是django.contrib.auth.models.User对象,response是字典。然后SOCIAL_AUTH_PIPELINE在后面使用完整的模块路径将该函数添加到create_user。
user
django.contrib.auth.models.User
response
create_user
如果你不希望对该信息进行任何操作,则可以保留默认管道。
最后,你需要将python-social-auth网址添加到你网站的urlpatterns:
urlpatterns
from django.conf.urls import include url("^soc/", include("social.apps.django_app.urls", namespace="social"))
那应该做到的!现在该进行测试了。首先,./manage.py makemigrations针对进行所需的迁移python-social-auth,然后./manage.py migrate按照此处的说明进行迁移。然后,你可以运行开发服务器,并转到http:// localhost:8000 / soc / login / google-oauth2 /?next = /。
./manage.py makemigrations
python-social-auth
./manage.py migrate
希望我没有跳过任何步骤的说明,它会起作用。随时问更多问题并阅读文档。另外,这是一个你应该检出的有效示例。