[pyar] Proteger AngularJS static files con Django

Luis Masuelli luismasuelli en hotmail.com
Mar Abr 28 12:10:21 ART 2015


No es un tema dificil. Por cada template craen /una/vista/de/django, y que sea un simple TemplateView que renderice un template determinado. No olviden dos cosas:

1. Los templates de AngularJS se cargan mediante ajax, por lo que este metodo sirve.
2. Recuerden usar tags {% verbatim %} envolviendo el contenido de los templates, asi no interpreta {{ los_bindings }} como si fueran variables de django.
3. Que el punto devuelva un crudo y feo 403 si no esta logueado. No usen login_required para esto porque sino en caso de no estar logueado les va a renderizar como template el formulario de login.
4. No se como corno reacciona Angular cuando, al buscar una plantilla, obtenga un 403. Usenlo a discreción.

Date: Tue, 28 Apr 2015 11:29:00 -0300
From: dmlistapython en gmail.com
To: pyar en python.org.ar
Subject: Re: [pyar] Proteger AngularJS static files con Django

Francisco, ¿cómo lo terminaste resolviendo?
Estoy en una situación similar a esta

El 25 de febrero de 2015, 14:26, Francisco Estevez <fran5estevez en outlook.com> escribió:






Buen día,

Les comento mi problema a ver si me pueden dar su opinión:

Tengo una API REST hecha en Djangorestframework, que tiene una autenticación básica para algunos endpoints ya funcionando.

La misma sirve como backend de datos a una aplicación web AngularJS.

Al cliente se le occurrió como requerimiento quiere que los templates que usa AngularJS esten protegidos con la misma autenticacion de la API.
Es decir, que por ejemplo, los templates de AngularJS para el login puedan sean accedidos sin restricción, y que los templates para otras vistas internas sólo sean accedidos si ya iniciamos sesión contra la API.
Actualmente al código de la app AngularJS lo tenemos alojado en el directorio /static/ del proyecto Django.

Buscando un poco, encontré que podria hacer otro directorio para servir archivos estaticos, por ejemplo /secret/, que requiera autenticación, viendo esto:

https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/apache-auth/

Lo pude hacer andar, loguea con los mismos usuarios de Django, pero al ingresar sale el típico prompt de user/password de apache, es decir, no usa la cookie sessionid que ya inicié con AngularJS para autenticarse.

También estuve viendo que los templates de Django comparten símbolos con los templates Angular, y digamos que habría que cambiar el funcionamiento de alguno de los 2 para que sean compatible ponerlo atrás de una view o usar el tag  ^% verbatim % de Django.

En fin, en mi opinión, todo este trabajo no tendría sentido. O sea, ocultar algunos de los templates de AngularJS atrás de una view de Django o con otro medio, ya que el sistema permite un free sign in a cualquiera que tenga un email válido.

A ustedes que les parece? Directamente lo descarto al pedido?

Saludos y muchas gracias!

Francisco.

 		 	   		  

_______________________________________________

pyar mailing list pyar en python.org.ar

http://listas.python.org.ar/listinfo/pyar



PyAr - Python Argentina - Sitio web: http://www.python.org.ar/



La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar


-- 
Daniel Malisani


_______________________________________________
pyar mailing list pyar en python.org.ar
http://listas.python.org.ar/listinfo/pyar

PyAr - Python Argentina - Sitio web: http://www.python.org.ar/

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150428/5e0a1ad8/attachment.html>


More information about the pyar mailing list