如何使用Django使用Google+ API登录?
我应该如何向我的Django网站添加Google+ API登录?
回答:
首先,你必须为Google+创建OAuth凭据。
- 转到Google Developer Console
- 创建一个新项目。
- 转到“ API和身份验证”->“授权屏幕”,并为你的产品命名。点击“保存”。
- 转到“ API和身份验证”->“凭据”。在“ OAuth”下,单击“创建新的客户端ID”。添加“ http:// localhost:8000 / soc / complete / google-oauth2 / ”应作为回调URL列出。这仅适用于测试,请确保在生产中放入你的实际域。
现在,将其添加python-social-auth到你的Django应用中。
安装python-social-auth
使用pip
设置适当的Django设置:
- 添加
'social.apps.django_app.default'到INSTALLED_APPS:
- 使用你之前创建的客户端密钥和密钥添加
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY和SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET
设置。客户端密钥是在Google开发者控制台的“凭据”屏幕中列出的“客户端ID”,以“ .apps.googleusercontent.com”
结尾。仅参加点之前的部分。该机密列为“客户端机密”。 - 确保你具有AUTHENTICATION_BACKENDS明确定义的设置,并且其中包含
'social.backends.google.GoogleOAuth2'
。一个例子是:
AUTHENTICATION_BACKENDS = ( 'social.backends.google.GoogleOAuth2',
'django.contrib.auth.backends.ModelBackend')
- 定义SOCIAL_AUTH_PIPELINE设置,如python-social-auth文档中所述。该页面列出了每种设置的作用。
如果你与从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
。
如果你不希望对该信息进行任何操作,则可以保留默认管道。
最后,你需要将python-social-auth网址添加到你网站的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 = /。
希望我没有跳过任何步骤的说明,它会起作用。随时问更多问题并阅读文档。另外,这是一个你应该检出的有效示例。
以上是 如何使用Django使用Google+ API登录? 的全部内容, 来源链接: utcz.com/qa/427243.html