Veamos cómo funciona todo. Inicie la consola de Rails en el directorio raíz de la aplicación:
1rails c
bash
Crea un usuario e introdúcelo en la consola:
1User.create!(email: $0027[correo electrónico protegido]$0027 , contraseña: $0027123123123$0027 , confirmación de contraseña: $0027123123123$0027)
bash
Para ver cómo funciona la autorización, es necesario que haya un recurso que se tenga que solicitar. Vamos a armar un recurso. En tu terminal, corre:
1rails g scaffold Nombre del artículo:descripción de la cadena:text
bash
Esto creará un recurso llamado Item de arriba a abajo — un modelo, un controlador, rutas y vistas. Migrar la base de datos:
1rails db:migrate
bash
Ahora, inicia el servidor y usa cURL para enviar las credenciales al localhost:3000/autentificar. Así es como debería verse la solicitud:
1$ curl -H "Content-Type: application/json" -X POST -d $0027{"email":"[email protected]", "password": "123123123"}$0027 http://localhost:3000/authenticate
bash
Su ficha será devuelta ahora.
1{"auth_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJleHAiOjE0NjA2NTgxODZ9.xsSwcPC22IR71OBv6bU_OGCSyfE89DvEzWfDU0iybMA"}
bash
¡Grandioso! Se ha generado una señal. Comprobemos si el recurso es accesible. Puedes hacerlo haciendo una petición GET al localhost:3000/items:
12$ curl http://localhost:3000/items{"error": "No autorizado"}
bash
El recurso no es accesible porque la ficha no ha sido preparada para los encabezamientos de la solicitud. Copie el token previamente generado y póngalo en el encabezado de la autorización:
12$ curl -H "Autorización: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJleHAiOjE0NjA2NTgxODZ9.xsSwcPC22IR71OBv6bU_OGCSyfE89DvEzWfDU0iybMA" http://localhost:3000/items[]
bash
Con la ficha preparada, se devuelve una matriz vacía ([]). Esto es normal… después de añadir cualquier elemento, lo verás devuelto en la solicitud.
¡Impresionante! Todo funciona.
Si te has perdido algo, el proyecto ha sido subido a GitHub. Si tienes alguna pregunta, por favor, no dudes en enviarme un mensaje a Github.