Sails.js
Sails.js
¡INSCRÍBETE A CUALQUIER CURSO CON UN 50% DE DESCUENTO PARA NUEVOS CLIENTES!

Las Policies en Sails.js nos permiten entre otras cosas comprobar si un determinado usuario puede acceder a un recurso, son como una especie de hooks que se ejecutan antes de procesar la acción, en este tutorial vamos a ver una pequeña introducción sobre Policies en Sails.js para entender e ir cogiendo conceptos sobre Sails.js.

La configuración global de las policies en Sails.js se ubica en config/policies.js, desde aquí podemos establecer tantas reglas cómo necesitemos, y el nombre de cada policie es un archivo que debe existir en api/policies, por ejemplo, existe un archivo llamado sessionAuth.js, entonces nosotros podemos utilizar la policie sessionAuth, es así de simple.

Policies en Sails.js

Vamos a crear una api users y en su controlador un método get cómo el siguiente.


Simplemente devolvemos un mensaje, bien, si levantas el server y accedes a http://localhost:1337/users/get verás que aparece el mensaje, genial.

Aplicando Policies en Sails.js

Abre el archivo config/policies.js y añade la siguiente regla.


Utilizamos la policie sessionAuth en el método get del controlador UsersController, veamos el código de esa policie que se aloja en api/policies/sessionAuth.js.


Si existe la sesión authenticated entonces procesa la acción get, en otro caso devuelve un 403 ya que el usuario no puede acceder, sencillo y genial.

Si ahora paras y levantas el server de nuevo, la policie habrá sido aplicada, y si intentas acceder de nuevo a http://localhost:1337/users/get verás el resultado de la página 403.ejs del directorio views, acceso denegado.

Ahora sólo debes crear tus Policies en Sails.js, cómo puedes ver, son muy potentes y sencillas de utilizar, más adelante veremos ejemplos más interesantes.