Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何登录谷歌&x2B;使用Django的API?_Django_Oauth_Google Api - Fatal编程技术网

如何登录谷歌&x2B;使用Django的API?

如何登录谷歌&x2B;使用Django的API?,django,oauth,google-api,Django,Oauth,Google Api,如何将Google+API登录添加到我的Django网站?首先,您必须为Google+创建OAuth凭据 去医院 创建一个新项目 转到“API和身份验证”->“授权屏幕”,并为您的产品命名。单击“保存” 转到“API和身份验证”->“凭据”。在“OAuth”下,单击“创建新的客户端ID”。添加“”应作为回调URL列出。这只适用于测试,请确保在生产时放入实际域 现在,让我们将pythonsocialauth添加到您的Django应用程序中 使用pip安装pythonsocialauth 设置适当的

如何将Google+API登录添加到我的Django网站?

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

  • 去医院
  • 创建一个新项目
  • 转到“API和身份验证”->“授权屏幕”,并为您的产品命名。单击“保存”
  • 转到“API和身份验证”->“凭据”。在“OAuth”下,单击“创建新的客户端ID”。添加“”应作为回调URL列出。这只适用于测试,请确保在生产时放入实际域
  • 现在,让我们将
    pythonsocialauth
    添加到您的Django应用程序中

  • 使用
    pip安装
    pythonsocialauth
  • 设置适当的Django设置:

    • 'social.apps.django\u app.default'
      添加到
      已安装的\u apps
    • 使用先前创建的客户端密钥和密码添加
      SOCIAL\u AUTH\u GOOGLE\u OAUTH2\u密钥
      SOCIAL\u AUTH\u GOOGLE\u OAUTH2\u SECRET
      设置。客户端密钥是Google开发者控制台“凭据”屏幕中列出的“客户端ID”,以“.apps.googleusercontent.com”结尾。只取圆点之前的部分。该机密被列为“客户机密”
    • 确保明确定义了
      AUTHENTICATION\u BACKENDS
      设置,并且该设置包含
      “social.BACKENDS.google.GoogleOAuth2”
      。例如:

      AUTHENTICATION_BACKENDS = (
          'social.backends.google.GoogleOAuth2',
          'django.contrib.auth.backends.ModelBackend')
      
    • 定义
      SOCIAL\u AUTH\u管道
      设置,如中所述。每个设置的作用都列在该页面中

    如果您与从Google+获得的信息有关,我建议您定义一个函数:

        def save_profile(backend, user, response, *args, **kwargs):
            if backend.name == "google-oauth2":
               # do something
    
    其中,
    user
    是一个
    django.contrib.auth.models.user
    对象,
    response
    是一个字典。然后在
    create\u user
    之后,使用完整的模块路径将该函数添加到
    SOCIAL\u AUTH\u管道中

    如果您不想对这些信息做任何事情,可以保留默认管道

  • 最后,您需要将
    pythonsocialauth
    url添加到站点的
    urlpatterns

    from django.conf.urls import include 
    url("^soc/", include("social.apps.django_app.urls", namespace="social"))
    
    这就应该做到了!是测试的时候了。首先,
    /manage.py为所需的
    python social auth
    迁移创建迁移,然后进行
    /manage.py迁移
    ,如前所述。然后,您可以运行开发服务器,并转到

    希望我没有跳过解释任何步骤,它会起作用。请随时提出更多问题和建议。此外,这里还有一个您应该查看的应用程序。

    的答案是正确的,但是
    python social auth
    现在已被弃用并迁移为
    social auth app django
    。这就是我与指南不同之处

  • 我安装了
    socialauth应用程序django
    ,而不是
    python社交auth
  • 'social.apps.django\u app.default'
    变为
    'social\u django'
  • 'social.backends.google.GoogleOAuth2'
    现在是
    'social\u core.backends.google.GoogleOAuth2'
  • url(^soc/),include(“social.apps.django\u app.url”,namespace=“social”)
    变成
    url(^soc/”,include(“social\u django.url”,namespace=“social”)

  • 我已经完成了所有步骤,它作为用户登录使用social auth,但我的用户没有被创建,它只是登录,虽然我看到在表“social_auth_usersocialauth”中创建了一个新记录,但在用户表中没有创建新用户。我正在扩展AbstractBaseUser并创建自定义用户域。如果有任何帮助,我将不胜感激。我希望我能多次投票支持这个答案。。。我已经阅读了3篇教程,只有在阅读了这篇文章之后,我才让它工作起来。还要确保将Google+API添加到Google开发者控制台上的已启用API列表中(在API下),否则您将得到一个403
    include
    来自
    django.conf.url
    。请注意,在这个答案发布后的某个时刻,
    pythonsocialauth
    被更改为一个新的库结构;它现在是
    social auth core
    ,为特定的框架提供了专用的应用程序,因此在本例中
    social auth app django
    。感谢您的分享,与以前的价值观一起,它到处崩溃,谢谢大家!相当干净的答案,它的工作与修改提到的乔治汉克斯非常!这真的帮了我很大的忙!如何在python中使用Google oauth注销?