Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Logout

21/37
Recursos

Completaremos el flujo de autenticación del usuario que iniciamos en la clase anterior agregando la funcionalidad de Logout. Ademas incorporamos algo de estilos al formulario de Login.

Aportes 28

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Error ui en mi app

Aquí es importante construir bien el loguin ya que debemos evitar que cuando construyamos el logout cualquier persona no logueada pueda entrar en los posts con la url es por ello que debemos usar el decorador login_required. Esto nos permitirá que solo personas logueadas puedan ver los posts.

Creo que es necesario que en la vista de login se valide si ya está el usuario autenticado, en caso contrario, pudiera loguearse con otra cuenta y ocasiona errores, con un if quedaría resuelto

if request.user.is_authenticated:
    redirect("posts")

Excelente clases

Me siento muy a gusto con este curso

return render (request, ‘users/login.html’,
{‘error’: ‘Invalid username and password’})

Si en lugar de usar “render” utilizamos un:
return redirect ( ‘login’)

Es valido? o pueden explicarme la funcion render para que funciona?

Para hacer un logout, solo tenemos que importar de django.contrib.auth, logout y sha. xD

Les dejo mi github https://github.com/jparadae donde subo el progreso de mi curso

muy sencillo el login de usuario, django expresa sencillez en el codigo

o pablo explica muy bien y for dummizzzz o como el dijo la curva de aprendizaje es muy rapida

¿Por qué cuando se recarga la página por primera vez, en vez de envíar un GET envía un POST y por ende colocando el mensaje de error definido?

Tambien podemos agregar librerias de terceros en mi caso use sweetalert2 para mostrar este mensaje.

<script>
    let error = '{{error}}';
    if (error.length > 0) {
        Swal.fire({
            icon: 'error',
            title: 'Oops...',
            text: error,
            // footer: '<a href="">Why do I have this issue?</a>'
        })
    }
</script>

Por si a alguien le interesa, hice el form de login asi:

<form action="{% url 'login' %}" method="POST">
    {% csrf_token %}
    <div class="mb-3">
        <input class="form-control" type="text" name="username" id="" , placeholder="Username">
    </div>
    <div class="mb-3">
        <input class="form-control" type="password" name="password" id="" placeholder="Password">
    </div>
    <div class="mb-3">
        <button class="btn btn-primary form-control" type="submit">Sign in</button>
    </div>
</form>

El navegador no encontraba el archivo de estilo indicado a pesar del código, y configuración exacta de bootstrap.min.css

Solución: Hice una copia exacta del anterior al que quería de a huevo con el nombre bootstrap.css

En django<=3 El decorador de login_required no es necesario, la documentación dice que no genera ningun error:

Note that logout() doesn’t throw any errors if the user wasn’t logged in.

When you call logout(), the session data for the current request is completely cleaned out. All existing data is removed. This is to prevent another person from using the same Web browser to log in and have access to the previous user’s session data. If you want to put anything into the session that will be available to the user immediately after logging out, do that after calling django.contrib.auth.logout().

Logre encontrar una solución para el problema del boton de regresar al hacer logout, esto se debía al cache del navegador, se debe dar la orden de eliminarlo, el codigo es el siguiente:

from django.views.decorators.cache import never_cache

@never_cache

def list_post(request):

Me fusta estas clases.

Cuando me no se hice login y trate de entrar a posts directamente desde la URL en el navegador, me genero un error.
Para solucionarlo tuve que indicarle al la funcion view de post hacia que vista dirigirse en caso de que el usuario no este logeado, esto lo hice por medio del decorador, así
@login_required(login_url=‘login’)

Espero les pueda servir

tengo una duda, cuando estoy haciendo el login la contraseña sale descubierta, como hago para que salgan los asteriscos y no la contraseña como tal?

Excelente se esta viendo el fruto del trabajo xD jejeje

Excelente, Muchas Gracias.

me gustaria saber como dentro de la funcion lost_posts podria obtener los datos del usuario activo en la sesion?

Muy facil! Buen profesor

Comparado con lo que se debería hacer con Node.js, Python facilita mucho éste proceso.

Por qué es necesario el login_requiered si hasta ahora no hay manera de que el usuario anónimo vea el botón de Logout?

Estaria genial aprender mas sobre bootstrap de esa forma

Espectacular, en verdad

No explica como consigue los iconos de Logout