[pyar] Auth0, JWT y Django REST

Marco Moresi mrc.moresi en gmail.com
Vie Mayo 5 00:35:56 ART 2017


Buenas como andan? Tengo una duda respecto de Auth0, JWT y Django Rest.
Quiero saber si estoy entendiendo bien el pipeline de como funciona y si
estoy haciendo bien las cosas.
Estoy trabajando en una API desarrollada en Django Rest, y la idea es que
desde el frontend se puedan logear a la API con Auth0.
Hasta ahora en la API estoy usando.
https://github.com/GetBlimp/django-rest-framework-jwt

Configurado de la siguiente forma, en settings.py

SECRET_KEY = 'SK por defecto creada por django'
>
> INSTALLED_APPS = [
>     ....
>     'rest_framework_jwt',
>     ....
>     ]
>
> REST_FRAMEWORK = {
>     'DEFAULT_PERMISSION_CLASSES': (
>         'rest_framework.permissions.IsAuthenticatedOrReadOnly',
>     ),
>     'DEFAULT_AUTHENTICATION_CLASSES': (
>         'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
>         'rest_framework.authentication.SessionAuthentication',
>         'rest_framework.authentication.BasicAuthentication',
>     ),
>
> }
>
Las settings de  django-rest-framework-jwt quedan por default por el
momento.
En las URL defino


from rest_framework_jwt.views import obtain_jwt_token, verify_jwt_token
>
urlpatterns= [
>     ...
>     url(r'^api-token-auth/', obtain_jwt_token),
>     url(r'^api-token-verify/', verify_jwt_token),
>     ...
> ]
>

a las vistas que quiero restringir les agrego authentication_classes y
permission_classes

class MiViewSet(viewsets.ViewSet):
>     renderer_classes = [JSONRenderer]
>     authentication_classes = (SessionAuthentication, BasicAuthentication,
> JSONWebTokenAuthentication)
>     permission_classes = (IsAuthenticated,)
>

Creo que la configuración esta bien, o por lo menos seguí los pasos de la
documentación. Pero me quedan dudas, la key que me brinda la API de Auth0
cuando registro mi API, donde la deberia poner en mi API, como secret_key?
o de eso se encarga Auth0.

Según lo que entendí y acá necesito que me corrijan si entendí mal, desde
el front end hacen un intercambio de tokens con la API de auth0 teniendo
como resultado un token (JWT) valido para mi API, el cual lo debe poner en
el Header de la request HTTP y la authentication_classes
JSONWebTokenAuthentication se hace cargo de manejar la lógica de si el
token es valido le da acceso a la vista, caso contrario deniega el acceso.

Eso es todo el trabajo que tengo que hacer desde mi API, o hay algo que me
falta?
Desde ya muchas gracias. Perdón si no se entendió algo de todo lo escrito.
Saludos Marco
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20170505/1094102e/attachment.html>


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