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, 鈥榰sers/login.html鈥,
{鈥榚rror鈥: 鈥業nvalid username and password鈥檥)

Si en lugar de usar 鈥渞ender鈥 utilizamos un:
return redirect ( 鈥榣ogin鈥)

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鈥檛 throw any errors if the user wasn鈥檛 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鈥檚 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=鈥榣ogin鈥)

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