Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

637
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda