JavaScript required
We’re sorry, but Coda doesn’t work properly without JavaScript enabled.
Skip to content
Gallery
DB App-Eat-Easier v3.0
App-Eat-Easier
More
Share
Explore
Cookbooks
Django AuthToken
Cookbook para implementar Django AuthToken
Settings:
En INSTALLED_APPS
Agregar rest_framework.authtoken
el algoritmo usado es SHA256
aquí hay un recurso:
https://emn178.github.io/online-tools/sha256.html
Si el server esta prendido te va a decir que una vez registrado rest_framework.authtoken hay migraciones por implementar
Hay que aplicarlas
python
manage.py
migrate
NO
hay necesidad de instalarlo de en PIP
Ya viene por default, solo es registrarlo en INSTALLED_APPS
Además es importante agregar en Settings lo siguiente:
Para que no tengas que importarlo en todas las vistas, sino una sola vez !!!
REST_FRAMEWORK
=
{
'DEFAULT_AUTHENTICATION_CLASSES'
:
[
'rest_framework.authentication.TokenAuthentication'
,
]
}
Una vez hechas las migraciones hay que hacer las validaciones:
Desde consola ingresar a SHELL con python
manage.py
shell
después hay importar →
from
django.contrib.auth.models
import
User
User.objects.all()
User.objects.first()._ _
dict
_ _
Después ir a admin y crear un usuario con su respectivo password
Hay que hacer una validación del usuario y crear su token, asi:
from
django.contrib.auth.models
import
User
user = User.objects.all().[1] // En este caso 1 debido a que es el segundo usuario creado después de admin
from
rest_framework .authtoken.models
import
Token
token = Token.objects.create(user=user)
una vez ejecutado te responde con el token y se guarda en la variable token
lo validas como token.__
dict
__
o puedes ir a db.sqlite3 en django e ir a tabla authtoken_token
Una vez hecho este proceso, con django se hace de una manera muy fácil y sencilla
No hay que crear la vista, django ya nos la proporciona, solo hay que importarla
from
rest_framework.authtoken
import
views
as
authtoken_views
y en urlpatterns escribir
path
(”auth_route/”, authtoken_views.
obtain_auth_token
, name=”token_auth”)
y le agregamos un reverse name → name = “token_auth”
Hay que hacerlas respectivas validaciones remotas
Volver a levantar el server con python
manage.py
runserver
Puedes ir directamente al link localhost:8000/api/auth_route/ pero realmente no hay una vista
Por lo cual hay que ir a Postman y ejecutarlo desde ahí con el método POST
Agregar un request, llamarlo login y poner la ruta de arriba
El método tiene que ser con
POST
te va a mandar un mensaje de respuesta diciendo que falta usuario y contraseña
entonces ir al tab de body y con formato json hay que agregar usuario y contraseña
y la respuesta del servidor será el token del usuario
incluso si borras el token, si vuelves a hacer la petición, en automático te lo vuelve a generar
internamente django hace la validación del password con una encriptación aparte
Y el siguiente paso inmediato es integrar en las vistas sensibles la validación de los permisos
Después el siguiente paso, es guardar el token en la memoria volatil del navegador para usarlo posteriormente en la navegación
Ya que si mal no recuerdo
Lo puedes validar con Postman
Pero en los parametros
En Authorization es usar el token
Y en body usar el user y el password
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
Ctrl
P
) instead.