Utilizamos cookies propias y de terceros para hacer funcionar y mejorar nuestros servicios. Si continúa navegando, consideramos que acepta su uso. Puede obtener más información visitando nuestra política de cookies.
DJANGO - AUTENTICACION BASICA
En esta sesión demostramos de manera sencilla cómo incorporar el mecanismo de autenticación de Django a una aplicación web, implementando el inicio y cierre de sesión con un formulario personalizado.
Cargando video...
NOTA: Solo puedes ver una versión limitada del video a baja resolución, si quieres ver la versión completa por favor regístrate y obtén alguno de nuestros planes!
Descripción del Vídeo
Django provee mecanismos (la aplicación 'django.contrib.auth' predeterminada) para agregar, de manera sencilla, la funcionalidad de autenticación (validar usuario y contraseña).
Aunque pueden personalizarse (y/o reimplementarse) muchas funcionalidades relacionadas, como la creación de usuarios, asignación de grupos, etc., las dejaremos en el sitio administrativo, y nos concentraremos en ilustrar el proceso de autenticar, aprovechando las características de Django.
Código disponible en:
https://github.com/networkfaculty/Fundamentos-Django/releases/tag/d-2.3.10
-- Agregar en curso/curso/settings.py
LOGIN_URL = '/login'
LOGIN_REDIRECT_URL = '/encuestas/'
Configurar rutas en curso/curso/urls.py
...
urlpatterns = [
...
url(r'^$', RedirectView.as_view(url='/encuestas/', permanent=True), name='index'),
# Utilizamos las vistas predeterminadas para iniciar y cerrar sesión
url(r'^login/$',
'django.contrib.auth.views.login',
{'template_name': 'encuestas/login.html'}),
url(r'^logout/$', 'django.contrib.auth.views.logout',{'next_page': '/'}),
]
Agregar identificación del usuario en plantilla base curso/encuestas/templates/encuestas/base.html
…
</ul>
<ul class="nav navbar-nav navbar-right">
{% if user.is_anonymous %}
<li><a href="{% url 'django.contrib.auth.views.login' %}">
{% bootstrap_icon 'log-in' %} Iniciar sesión</a></li>
{% else %}
<li><a href="#">{% bootstrap_icon 'user' %} Hola, {{ user }}</a></li>
<li><a href="{% url 'django.contrib.auth.views.logout' %}">
{% bootstrap_icon 'log-out' %} Salir</a></li>
{% endif %}
</ul>
{% endblock %}
...
Formulario personalizado de autenticación en curso/encuestas/templates/encuestas/login.html
{% extends 'encuestas/base.html' %}
{% load bootstrap3 %}
{% block contenido %}
{% if form.errors %}
{% bootstrap_alert 'Las credenciales son inválidas' alert_type='danger' %}
{% endif %}
{% if next %}
{% if user.is_authenticated %}
{% bootstrap_alert 'No posee privilegios para acceder a esta funcionalidad' alert_type='danger' %}
{% else %}
{% bootstrap_alert 'Inicie sesión para acceder a esta funcionalidad' alert_type='warning' %}
{% endif %}
{% endif %}
{% if user.is_authenticated %}
{% bootstrap_alert 'Ya ha iniciado sesión' alert_type='info' %}
{% else %}
<h2>Iniciar sesión</h2>
<form method="post" action="{% url 'django.contrib.auth.views.login' %}" class="form-inline">
{% csrf_token %}
{% bootstrap_field form.username layout='inline' %}
{% bootstrap_field form.password layout='inline' %}
{% bootstrap_button "Iniciar sesión" button_type="submit" button_class="btn-primary" %}
<input type="hidden" name="next" value="{{ next }}" />
</form>
{% endif %}
{% endblock %}
Rating
Global
comments powered by Disqus