Directorio de artículos
Django rest framwork jwt
http://jpadilla.github.io/django-rest-framework-jwt/
1. Instalación
Nota: cambie al entorno Python de su propio proyecto para instalar
$ pip3 install djangorestframework-jwt
2. Utilice
2.1 Uso de configuraciones globales
En settings.py
agregado JSONWebTokenAuthentication
al marco Django REST DEFAULT_AUTHENTICATION_CLASSES
.
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
),
}
En urls.py
Agregar el siguiente enrutamiento de URL, que puede habilitar la función para obtener el token de usuario a través de solicitudes POST, es necesario proporcionar el nombre de usuario y la contraseña al enviar una solicitud POST.
2.2 Ver configuración y uso
from rest_framework_jwt.authentication import JSONWebTokenAuthentication
class UsersSeriaView(APIView):
authentication_classes = [JSONWebTokenAuthentication]
permission_classes = [IsAuthenticated]
Configurar URL
from rest_framework_jwt.views import obtain_jwt_token
#...
urlpatterns = [
'',
# ...
path(r'api-token-auth/', obtain_jwt_token),
]
Establecer la hora válida de Tocken y el prefijo de la información del token de autenticación
En el settings.py
archivo de configuración
import datetime
JWT_AUTH = {
'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=7),
'JWT_AUTH_HEADER_PREFIX': 'JWT',
}
herramienta cartero
Crear solicitud de cartero
Obtener token
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNTY5MTQ3MzgzLCJlbWFpbCI6ImFkbWluQHNoYXJrLmNvbSJ9.v5t9lr2zEnI0nlTfTl3FRdHMmiEMBO1Mwp5zQV6i5kY
Usar token JWT
herramienta de rizo
Si crea un usuario con el nombre de usuario admin y la contraseña password123, puede probar fácilmente si el punto final funciona correctamente realizando las siguientes operaciones en la terminal.
$ curl -X POST -d "username=admin&password=password123" http://localhost:8000/api-token-auth/
Enviar en formato JSON
$ curl -X POST -H "Content-Type: application/json" -d '{"username":"admin","password":"password123"}' http://localhost:8000/api-token-auth/
Entonces puedes usar Token para obtener los datos correspondientes
$ curl -H "Authorization: JWT <your_token>" http://localhost:8000/protected-url/