Práctica JWT de verificación de inicio de sesión del marco REST de Django

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.pyagregado JSONWebTokenAuthenticational 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.pyAgregar 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.pyarchivo 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

Inserte la descripción de la imagen aquí

[Error en la transferencia de la imagen del enlace externo. El sitio de origen puede tener un mecanismo de enlace anti-sanguijuelas. Se recomienda guardar la imagen y subirla directamente (img-KPcWbzdi-1599822683426) (evernotecid: // BBD579E0-7127-4377-8E81-47BEA574FA91 / appyourceinxiangcom / 25594833 / ENRes594833 / p711)]
Inserte la descripción de la imagen aquí

Obtener token

[Error en la transferencia de la imagen del enlace externo. El sitio de origen puede tener un mecanismo de enlace anti-sanguijuela. Se recomienda guardar la imagen y subirla directamente (img-IonrVJLZ-1599822683459) (evernotecid: // BBD579E0-7127-4377-8E81-47BEA574FA91 / appyourceinxiangcom / 25594833 / p709)]

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNTY5MTQ3MzgzLCJlbWFpbCI6ImFkbWluQHNoYXJrLmNvbSJ9.v5t9lr2zEnI0nlTfTl3FRdHMmiEMBO1Mwp5zQV6i5kY

Usar token JWT

Inserte la descripción de la imagen aquí

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/

Supongo que te gusta

Origin blog.csdn.net/qq_22648091/article/details/108540196
Recomendado
Clasificación