El video dice que dura 26:14 pero despues del 13:45 ya no hay nada.
Bienvenida
Todo lo que aprenderás sobre Django
Cimientos
Arquitectura de una aplicación
The Twelve-Factor App
Codebase: Settings modular
Codebase: Dependencias y archivos de docker
Codebase: Docker
Setups alternativos
Modelos
Herencia de modelos
Proxy models
App de usuarios
Organizando modelos en un paquete de Django
Creando el modelo de perfil de usuario
Solución del reto: arreglando la migración de users a user
Aplicación y modelo de círculos
Migraciones y admin de círculos
Introducción a Django REST Framework
Aprende cómo construir tu propio API con Django Rest Framework
Vistas, URLs y Parsers de DRF
Serializers
Buenas prácticas para el diseño de un API REST
Request, response, renderers y parsers
Real DRF
Autenticación y tipos de autenticación
APIView
Creando el token de autorización
User sign up
Limitar login a usuarios con cuenta verificada
Configurar envío de email
Instalar PyJWT y generar tokens
Verificar cuenta usando JWT
Actualizar modelo de circle (membership)
Crear CircleViewSet
Añadiendo autorización y paginación
Creación de circulos
Update de círculo, custom permissions y DRF Mixins
Migración de vistas de usuarios a ViewSets
Detalle de usuario
Update profile data
List members - Recursos anidado
Retrieve destroy member
Modelo de invitaciones y manager
Obtener invitaciones de un miembro
Unirse a grupo
Filtrado
App de rides y modelos
Implementar la publicación de un ride
Validación de campos de un serializer
Listado de rides
Editar un ride
Unirse a viaje
Terminar viaje
Calificar viaje
Tareas asíncronas
¿Qué es Celery?
Creando tarea asíncrona
Creando tarea periódica
Testing
Python unittest y Django TestCase
DRF APITestCase
Django Admin
Admin actions: Modificar datos de un query
Admin actions: Regresando una respuesta HTTP
Deployment
Instalación de la aplicación
Configuración del dominio en Mailgun y del Bucket en Amazon S3
Configuración final de Docker Container usando Supervisor
Tutorial de despliegue de la aplicación
Futuros pasos y cierre del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 26
Preguntas 4
El video dice que dura 26:14 pero despues del 13:45 ya no hay nada.
Recomentación
La implementación original proprocionada por django nos otorga tanto las funciones authenticate y login. Authenticate ya esta siendo utilizada en nuestra versión para la verificación del usuario sin embargo las tareas que hacia login no estan siendo implementadas del todo. El siguiente código agrega la funcionalidad para asignar la última fecha de login de un usuario al momento de crear(OJO. Solo al momento de crear, cuando se retorna un token ya existente no se genera un cambio en este cmapo) un nuevo token para el usuario.
class UserLoginSerializer(serializers.Serializer):
''' Serializer for login of users '''
password = serializers.CharField()
email = serializers.EmailField()
def validate(self, data):
''' Validate the information of the login user '''
user = authenticate(email=data['email'], password=data['password'])
if not user:
raise serializers.ValidationError('Invalid Credentials')
self.context['user'] = user
return data
def create(self, data):
''' Create token for identificate the user and update the last login date'''
token, created_token = Token.objects.get_or_create(user=self.context['user'])
user = self.context['user']
if created_token:
user.last_login = timezone.now()
user.save(update_fields=['last_login'])
return user, token.key
Yo tenia problemas tratando de ejecutar las migraciones de authtoken pero al final parece que era un poblema con la compatibilidad entre las diferentes librerias-frameworks usados.
Lo solucioné trayendo la version mas actual de django-rest-framework.
PD: Puede que ya sea hora de actualizar este curso, la calidad es muy buena, pero ya hay muchos problemas de compatibilidad
Caray, eso de estar imporvisando durante la clase y generando una solución específica para su proyecto confunde un montón… mejor a leer la documentación y reforzar con los tutoriales de LinkedIn Learning
Una sugerencia.
Me dio la impresión que esta clase específicamente no estuvo preparada. Es evidente que el profesor es un crack y hasta más. Sin embargo puede que sea mala edición. Sin embargo al divagar tanto e internarse en su forma de trabajo crea confusión.
Es solo mi opinión basado en mis impresiones.
Por favor arreglen el video.
Al hacer http localhost:8000/users/login/ email=“akfajfajfasj” password=4564564admin
me sale los siguiente
<style type=“text/css”>
html * { padding:0; margin:0; }
body * { padding:10px 20px; }
body * * { padding:0; }
body { font:small sans-serif; background:#eee; color:#000; }
body>div { border-bottom:1px solid #ddd; }
h1 { font-weight:normal; margin-bottom:.4em; }
h1 span { font-size:60%; color:#666; font-weight:normal; }
#info { background:#f6f6f6; }
#info ul { margin: 0.5em 4em; }
#info p, #summary p { padding-top:10px; }
#summary { background: #ffc; }
#explanation { background:#eee; border-bottom: 0px none; }
</style>
</head>
<body>
<div id=“summary”>
<h1>Forbidden <span>(403)</span></h1>
<p>CSRF verification failed. Request aborted.</p>
<p>You are seeing this message because this site requires a CSRF cookie when submitting forms. This cookie is required for security reasons, to ensure that your browser is not being hijacked by third parties.</p>
<p>If you have configured your browser to disable cookies, please re-enable them, at least for this site, or for âsame-originâ requests.</p>
¿como lo soluciono?
donde podemos ver la implementacion de un token seguro para mejorar el proyecto que estamos desarrollando en este curso se puede usara JWT para todo el proyecto y no solo para verificar los usuarios por email , como seria su uso en todo el proyecto conocen una guía o algo? gracias
Asegurense de poner la coma al final
# Django REST Frameowrk
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES':(
'rest_framework.renderers.JSONRenderer',
)
}
para no tener un molesto
TypeError: object of type 'type' has no len()
tengo un problema al colocar en base “rest_framework.authtoken” … no me deja continuar 😦
Token.objects.get_or_create(user=self.context['user'])
Ánimo que se puede terminar este curso!!!
Todos los serializers comparten un contexto (7:02)
La verdad no se porque pero a la hora de hacer:
serializer.is_valid(raise_exception=True)
no ejecutaba la function validation dentro de la clase UserLoginSerializer lo solucione mandando llamar directamente esa función despues del is_valid() asi :
serializer = UserLoginSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
serializer.validation(data=request.data)
si alguien sabe porque paso eso ya que asi no esta en el video porfavor diganme
Hola!
Una pregunta, he visto varios ejemplos donde la autentificacion se maneja fuera de las url versionadas.
¿La autentificacion no se debe versionar?
Hey esta clase me lanza un error si pongo
token, user = serializer.save()
psero si lo hago al revez no
user, token = serializer.save()
Por qué pasa esto?
Cuando hago:
http localhost:8000/users/login/ email="[email protected]" password=cfhhbj422
Incluso con emails que si existen me sigue saliendo:
HTTP/1.1 400 Bad Request
Allow: POST, OPTIONS
Content-Length: 44
Content-Type: application/json
Date: Fri, 17 Apr 2020 14:53:56 GMT
Server: WSGIServer/0.2 CPython/3.6.10
Vary: Accept, Cookie
X-Frame-Options: DENY
x-xss-protection: 1; mode=block
{
"non_field_errors": [
"Invalid credentials"
]
}
Alguna idea?Gracias
me sale un error cuando envio el post con el correo y el password
’UserLoginSerializer’ object is not callable
a alguien mas le salio esto?
Este video esta mal grabado, hay partes que no coincide el audio con la imagen
No es redundante comentar """Meta class."""
en la clase Meta? es como que no agrega ninguna información adicional. Lo mismo con UserModelSerializer
comentando “User model serializer”. Simplemente es repetir lo que ya escribiste.
Alguien ha tenido problemas con los serializers? llevo casi tres días resolviendo bugs
user, token = serializer.save()
No se supone que el metodo save() retorna una instancia del modelo? pero esta token y user… no entiendo :S
¿Hay alguna impelmentación de Token seguro como ejemplo, que con pocos conocimientos sea fácil de implementar?
No entiendo muy bien, es un curso avanzado, pero el ejemplo de token no es seguro.
Que metodos de autenticacion pueden ser realmente seguros?
Código Serializer para modelo User
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.