keep google example django oauth google-api

django - example - google keep api



¿Cómo iniciar sesión con la API de Google+ utilizando Django? (2)

¿Cómo puedo agregar un inicio de sesión de la API de Google+ a mi sitio web de Django?


La respuesta de es correcta, pero python-social-auth ahora está en desuso y se migra como social-auth-app-django . Así que esto es lo que hice diferente de las directrices .

  1. En lugar de python-social-auth , instalé social-auth-app-django ,
  2. ''social.apps.django_app.default'' convierte en ''social_django''
  3. ''social.backends.google.GoogleOAuth2'' ahora es ''social_core.backends.google.GoogleOAuth2''
  4. url("^soc/", include("social.apps.django_app.urls", namespace="social")) convierte en url("^soc/", include("social_django.urls", namespace="social"))

Primero debes crear las credenciales de OAuth para Google+.

  1. Ir a la consola de desarrolladores de Google
  2. Crea un nuevo proyecto.
  3. Vaya a "API y autenticación" -> "Pantalla de autorización" y asigne un nombre a su producto. Clic en Guardar".
  4. Vaya a "API y autenticación" -> "Credenciales". Debajo de "OAuth", haga clic en "Crear nuevo ID de cliente". Agregar " http://localhost:8000/soc/complete/google-oauth2/ " debe aparecer como una URL de devolución de llamada. Esto solo funcionará para pruebas, asegúrese de incluir su dominio real cuando esté en producción.

Ahora agreguemos python-social-auth a tu aplicación Django.

  1. Instala python-social-auth con pip
  2. Establezca la configuración de Django apropiada:

    • Agregue ''social.apps.django_app.default'' a INSTALLED_APPS :
    • Agregue las configuraciones SOCIAL_AUTH_GOOGLE_OAUTH2_KEY y SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET con la clave del cliente y el secreto que creó anteriormente. La clave del cliente es el "ID de cliente" que aparece en la pantalla "Credenciales" en la consola de desarrolladores de Google, la que termina en ".apps.googleusercontent.com". Solo toma la parte antes del punto. El secreto aparece como "secreto del cliente".
    • Asegúrate de que la configuración de AUTHENTICATION_BACKENDS esté definida explícitamente y que contenga ''social.backends.google.GoogleOAuth2'' . Un ejemplo sería:

      AUTHENTICATION_BACKENDS = ( ''social.backends.google.GoogleOAuth2'', ''django.contrib.auth.backends.ModelBackend'')

    • Defina la configuración SOCIAL_AUTH_PIPELINE como se detalla en la documentación de python-social-auth . Lo que hace cada ajuste está listado en esa página.

    Si tiene algo que ver con la información que obtiene de Google+, le recomiendo que defina una función:

    def save_profile(backend, user, response, *args, **kwargs): if backend.name == "google-oauth2": # do something

    donde user es un objeto django.contrib.auth.models.User , y la response es un diccionario. Luego, agregue esa función a SOCIAL_AUTH_PIPELINE utilizando la ruta completa del módulo, después de create_user .

    Si no desea hacer nada con esa información, puede dejar el canal predeterminado tal como está.

Finalmente, querrá agregar las URL de python-social-auth a los urlpatterns URL de su sitio:

from django.conf.urls import include url("^soc/", include("social.apps.django_app.urls", namespace="social"))

¡Y eso debería hacerlo! Es hora de probar. Primero, ./manage.py makemigrations para las migraciones requeridas de python-social-auth , y luego ./manage.py migrate , como se explica here . Luego, puede ejecutar el servidor de desarrollo e ir a http://localhost:8000/soc/login/google-oauth2/?next=/ .

Ojalá no me haya saltado explicando ningún paso y funcionará. Siéntase libre de hacer más preguntas y leer los documentos . Además, aquí hay un ejemplo de trabajo que deberías revisar.