Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

636
Views
Autenticación de Google usando django-rest-auth y allauth

Estoy tratando de crear una API de autenticación para una aplicación flutter que iniciará la sesión de los usuarios con un formulario de registro/inicio de sesión de autenticación de Google. Seguí este tutorial para lograr esto.

Hasta ahora todo bien, excepto que el tutorial se basa en un inicio de sesión de GitHub en lugar de Google. Logré que funcionara hasta el paso "conectar". Puedo obtener el code de la redirección, pero cuando accedo a http://127.0.0.1:8000/auth/google/ veo que solicita dos campos ( access_token , code ). Cuando intento simplemente publicar con la información que tengo, aparece el siguiente error:

 "non_field_errors": [ "View is not defined, pass it as a context variable" ]

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
4 answers
Answer question

0

Este es un error de conflicto de versión con djangorestframework => 3.12 Solución: Degradar a djangorestframework <= 3.11.0 y todo debería estar bien.

over 4 years ago · Santiago Trujillo Report

0

Prueba esto:

 class GoogleLogin(SocialLoginView): adapter_class = GoogleOAuth2Adapter client_class = OAuth2Client serializer_class = SocialLoginSerializer def get_serializer(self, *args, **kwargs): serializer_class = self.get_serializer_class() kwargs['context'] = self.get_serializer_context() return serializer_class(*args, **kwargs) google_login = GoogleLogin.as_view()
over 4 years ago · Santiago Trujillo Report

0

Quiero agregar detalles en el fragmento de código JACKSON MOURA con una explicación.

En settings.py, tienes que hacer esto. No encontré ninguna buena documentación. Pero funciona para la autenticación social. ahora ya no necesita configurar las aplicaciones de autenticación social usando el panel de administración. Mostré ejemplos de Google, Facebook y LinkedIn. También funcionará con otras aplicaciones sociales.

 SOCIALACCOUNT_PROVIDERS = { "google": { "APP": { "client_id": "<client_id>", "secret": "<secret>", }, }, 'facebook': { "APP": { "client_id": "<client_id>", "secret": "<secret>", }, }, "linkedin": { "APP": { "client_id": "<client_id>", "secret": "<secret>", } } }

Ahora en view.py, debe crear clases de serializador. todo será igual. Estoy mostrando para Google, LinkedIn y Facebook.

 class FacebookLogin(SocialLoginView): adapter_class = FacebookOAuth2Adapter client_class = OAuth2Client serializer_class = SocialLoginSerializer def get_serializer(self, *args, **kwargs): serializer_class = self.get_serializer_class() kwargs['context'] = self.get_serializer_context() return serializer_class(*args, **kwargs) class GoogleLogin(SocialLoginView): adapter_class = GoogleOAuth2Adapter client_class = OAuth2Client serializer_class = SocialLoginSerializer def get_serializer(self, *args, **kwargs): serializer_class = self.get_serializer_class() kwargs['context'] = self.get_serializer_context() return serializer_class(*args, **kwargs) class LinkedInLogin(SocialLoginView): adapter_class = LinkedInOAuthAdapter client_class = OAuthClient serializer_class = SocialLoginSerializer def get_serializer(self, *args, **kwargs): serializer_class = self.get_serializer_class() kwargs['context'] = self.get_serializer_context() return serializer_class(*args, **kwargs)

Ahora, el backend está listo para obtener datos de publicación desde el frontend y mostrará un error perfecto como se muestra a continuación. Funcionará con todas las demás aplicaciones sociales.

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Report

0

Es porque rest_auth ya no se mantiene y no es compatible con las últimas versiones de Django Rest Framework.

Este error se resuelve cambiando a dj-rest-auth en lugar de rest_auth, que se mantiene activamente como bifurcación del proyecto original.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!