Policies: verificar si usuario está loggeado
Clase 27 de 38 • Curso de Desarrollo de APIs con Sails.js
Contenido del curso
- 10

Entendiendo operaciones CRUD
05:09 - 11

Crear modelo de rodada
07:43 - 12

Crear app de Ionic
11:42 - 13

Obtener todas las Rodadas: preparando la aplicación para mostrar datos
14:52 - 14

Obtener todas las Rodadas: mostrando los datos
14:25 - 15

Crear Rodada: recibiendo parámetros desde la URL
12:29 - 16

Crear Rodada: enviando información desde el formulario
12:41 - 17

Actualizar Rodada
12:17 - 18

Eliminar Rodadas
04:55
- 26

Uso de JSON Web Token
10:23 - 27

Policies: verificar si usuario está loggeado
11:53 - 28

Agregar usuario a Ride
09:48 - 29

Preparando la App para implementar el Login y Sign up
11:01 - 30

Implementando Login
15:04 - 31

Implementando Sign up
09:35 - 32

Agregar puntos de Rodada
15:20 - 33
Obtener API Keys para Clima y Distancias
00:56 - 34

Integración Google Geocoding: definiendo la lógica
14:57 - 35

Integración Google Geocoding: probando la funcionalidad
06:14 - 36

Integración Weather API
13:05 - 37

Desplegar clima, distancia y tiempo en cada punto de Rodada
06:08
¿Cómo validar un token en una API?
La validación de tokens es fundamental en la seguridad de las aplicaciones web y de APIs. Especialmente si necesitas proteger recursos o acciones específicas basadas en las credenciales de un usuario. Vamos a explorar cómo crear una política de validación de un token siguiendo el código proporcionado.
¿Qué es una policy y cómo crearla?
Una policy o política se encarga de definir acciones específicas en función de ciertos criterios de autorización de usuarios. En nuestro caso, creamos una política para validar un token de usuario.
- Creación del archivo policy:
- Dentro de la carpeta
policies, crea un archivo llamadoisLoggedIn.js. - Define una función que reciba los parámetros
req,resynext.
- Dentro de la carpeta
module.exports = async function (req, res, next) {
// arquitectura del código
};
- Validación del token:
- Verifica si el token está presente en el encabezado
Authorization. - Si no está presente, devuelve un error 400 indicando la falta del header de autorización.
- Verifica si el token está presente en el encabezado
if (!req.headers || !req.headers.authorization) {
return res.badRequest({ error: 'Authorization header not present' });
}
- Decodificación y verificación del token:
- Extrae el token del encabezado y usa el servicio de autenticación (previamente creado) para decodificarlo y verificarlo.
const token = req.headers.authorization;
const decodedToken = AuthService.jwtVerify(token);
- Extracción del usuario:
- Usando el
userIddentro del token decodificado, busca al usuario en la base de datos.
- Usando el
const user = await User.findOne({ id: decodedToken.userId });
if (!user) {
return next(new Error('User not found'));
}
- Continúa la cadena de middleware:
- Si el usuario es válido, adjunta el objeto usuario al
reqpara utilizarlo posteriormente.
- Si el usuario es válido, adjunta el objeto usuario al
req.user = user;
next();
¿Cómo aplicar una policy en Sails.js?
Por defecto, podemos aplicar la política a todos los endpoints o a específicos:
- Edición del archivo
policies.js:- Dentro de
configdel proyecto, localiza el archivopolicies.js. - Define en qué controladores y acciones se aplicará la política
isLoggedIn.
- Dentro de
module.exports.policies = {
RaidController: {
'*': 'isLoggedIn',
'create': true, // excepciones
}
};
¿Cómo interactúa el token con Postman?
Con la política ya implementada, ahora es crucial entender cómo interactuar con ella en herramientas como Postman.
-
Verificación de token:
- Envía solicitudes pasando el token en el encabezado
Authorization. - Observa cómo una solicitud incorrecta debido a un token inválido es rechazada automáticamente.
- Envía solicitudes pasando el token en el encabezado
-
Demostración práctica:
- Al cambiar caracteres del token, podrás ver cómo se rechazan solicitudes. Esto ilustra que cualquier alteración hace que el token sea inválido, demostrando la seguridad de las implementaciones.
Ahora, con esta estructura y el apoyo de una plataforma como Postman, deberías ser capaz de gestionar eficazmente las validaciones y aplicaciones de tokens en tus APIs de una manera segura y controlada. A medida que desarrolles más funcionalidades, asegúrate de seguir la lógica demostrada aquí, para garantizar la integridad de tu aplicación.