当前位置: 首页 > 面试题库 >

如何使用Django使用Google+ API登录?

岳佐
2023-03-14
问题内容

我应该如何向我的Django网站添加Google+ API登录?


问题答案:

首先,你必须为Google+创建OAuth凭据。

  1. 转到Google Developer Console
  2. 创建一个新项目。
  3. 转到“ API和身份验证”->“授权屏幕”,并为你的产品命名。点击“保存”。
  4. 转到“ 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开发者html" target="_blank">控制台的“凭据”屏幕中列出的“客户端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

这里userdjango.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 = /。

希望我没有跳过任何步骤的说明,它会起作用。随时问更多问题并阅读文档。另外,这是一个你应该检出的有效示例。



 类似资料:
  • 问题内容: 我正在尝试在自定义身份验证中覆盖is_authenticated。我有一个简单的东西(开始)是这样的: 然后在我的ModelResource中 我不断收到500错误。我在数据库中只有一个用户名,这是我要验证的用户。 关于它为什么返回此错误的任何想法?我将如何允许api客户端登录? 谢谢您的帮助。 问题答案: 您的方法将尝试使用您要进行身份验证的用户名创建一个新用户。正如您所注意到的,这

  • 问题内容: 我正在尝试在自定义身份验证中覆盖is_authenticated。我有一些简单的东西(开始),像这样: 然后在我的ModelResource中 我不断收到500错误。我在数据库中只有一个用户名,这是我要验证的用户。 关于它为什么返回此错误的任何想法?我将如何允许api客户端登录? 问题答案: 你的方法将尝试使用你要进行身份验证的用户名创建一个新用户。正如你所注意到的,这将在数据库层冒泡

  • 我一直在尝试使用selenium登录我的谷歌帐户,但一旦我通过电子邮件并点击回车,它会重定向到以下消息 “此浏览器或应用可能不安全。了解更多信息请尝试使用其他浏览器。如果您已经在使用受支持的浏览器,您可以刷新屏幕,然后再次尝试登录。” 以下是我的python代码: 请注意,我是python和selenium的新手。我非常感谢你的帮助。提前谢谢 我已经尝试使用硒谷歌登录块中描述的方法,但它仍然给了我

  • 我一直在尝试使用python selenium自动登录google,但在输入用户名并单击next之后,我收到了消息 这可能是因为网页检测到chrome浏览器由测试自动化软件控制。但是我已经尝试使用以下设置代码排除该开关: 但它仍然不起作用。我用的是Chrome98。 我怎样才能解决这个问题?或者也许有另一种方法可以使用python-selenium和用户名/密码组合自动登录谷歌帐户?

  • 问题内容: 因此,我正在执行的第一个项目中使用Google Maps API。是的,我是新手,如果这是基础知识或显而易见的事情,我感到抱歉,但是我找不到明确的答案或方向。以下是我从Google找到的有关安全使用API​​密钥的文档。 安全使用API​​密钥的最佳做法 在应用程序中使用API​​密钥时,请注意确保其安全。公开暴露您的凭据可能会导致您的帐户遭到盗用,这可能会导致您的帐户发生意外费用。为

  • 问题内容: 我需要能够读取数据并将数据写入电子表格。我正在使用Google App Engine中的Go语言进行编程。 问题答案: 自问及回答此问题以来,已经过去了很多时间。现在,通过golang与Google表格进行交互的功能要好得多。 当前,“ Google Apps脚本执行API”提供了最广泛的访问权限。从这里开始:https : //developers.google.com/apps-