[pyar] Django - Users auth de api externa

Augusto adtononi en gmail.com
Sab Oct 5 20:34:55 -03 2019


Gracias por las respuestas!

Leeré la documentación que me pasaron, y trataré de armar algo.

Saludos!!

El sáb., 5 oct. 2019 19:59, Bruno Geninatti <brunogeninatti en gmail.com>
escribió:

>
>
> El sáb., 5 oct. 2019 a las 19:37, nestor godoy (<licomgodoy en gmail.com>)
> escribió:
>
>> Tal ves tenga que crear tu propia clases de authenticantion
>> https://www.django-rest-framework.org/api-guide/authentication/#custom-authentication
>>
>>
>> Es la idea que se me ocurre
>>
>> El sáb., 5 de octubre de 2019 14:19, Augusto <adtononi en gmail.com>
>> escribió:
>>
>>> Buenas, estuve leyendo la documentación para verificar si el usuario
>>> está logueado o no. Quería que algunas views sea requisito, así que estaba
>>> usando @login_required.
>>> El problema es que no tengo una DB de usuarios, estos están en una DB
>>> externa a la cual se comunican mediante una API y esta les proporciona un
>>> token para poder realizar las consultas.
>>> Estuve buscando pero no encontré, como podría verificar que el usuario
>>> está logeado?
>>>
>>> El proceso de login es simple, pide nombre y contraseña. La API recibe
>>> esos datos, los manda a la DB externa y devuelve un token.
>>>
>>> Por el momento, si alguien que no se logueo entra a una ruta de la
>>> página, le muestra la view sin la info. Mientras que la idea es que lo
>>> obligue a loguearse (acá me falla el @login_required, lo lleva a la página
>>> de logueo pero después no lo redirecciona y además le pide que se loguee
>>> cada vez que quiere ingresar a otra view, es decir que no queda registro
>>> del login anterior)
>>>
>>> Saludos!
>>> _______________________________________________
>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>> Sitio web: http://www.python.org.ar/
>>>
>>> Para administrar la lista (o desuscribirse) entrar a
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>
>> _______________________________________________
>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> Sitio web: http://www.python.org.ar/
>>
>> Para administrar la lista (o desuscribirse) entrar a
>> http://listas.python.org.ar/listinfo/pyar
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>
>
>
> Hola Augusto. Asumo que tu consulta es sobre Django y no sobre DRF.
> Te recomiendo que para la auth externa hagas un authentication backend [1]
>
> Fijate que hacer el custom authentication backend no es dificil. Tenes que
> definir una clase que tiene algunos métodos que son requeridos.
> En el método authenticate vos harías la llamada a la API externa: acá
> tenes un ejemplo [2]
>
> Después de eso la tenes que agregar al AUTHENTICATION_BACKENDS
> <https://docs.djangoproject.com/en/2.2/ref/settings/#std:setting-AUTHENTICATION_BACKENDS>
> en los settings.
> Incluso podes ponerle varios backends para definir multiples pasos de
> authenticacion, por ejemplo:
> "Primero probá la auth estándar de django, si pasa esa hace una segunda
> prueba con este backend que hice yo"
> O directamente podes deshabilitar la authenticacion estandar de django y
> usar sólo la tuya.
>
> Otra cosa:
> Si bien los usuarios y la authenticación se manejan externamente, te
> recomiendo que mantengas una lista de los usuarios en la db local. Pensá
> que si tenes que relacionar cualquier atributo al usuario en la aplicación,
> se te va a complicar si no tenes allguuuna referencia del mismo en la db.
>
> [1] https://docs.djangoproject.com/en/2.2/topics/auth/customizing/
> [2]
> https://docs.djangoproject.com/en/2.2/topics/auth/customizing/#writing-an-authentication-backend
>
> Espero te sea de ayuda
>
> Saldudos
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> 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/20191005/458aa18e/attachment.html>


Más información sobre la lista de distribución pyar