Tengo una nueva aplicación basada en la API de Rails, donde necesito implementar la autorización.
Arquitectura general:
React frontend -> Rails API layer -> Rails model/server layer
Al explorar diferentes enfoques, tengo una confusión.
- ¿Deberíamos poner la lógica de autorización en la capa API o la capa de servicio?
- Enfoque de la capa API: Desarrollaremos un middleware de autorización que se ubicará entre nuestra interfaz y la capa API, y todas nuestras llamadas a la API se enrutarán a través del middleware de autorización para verificar si el usuario tiene permiso para llamar a ese parituclar. api.
-
Capa de servicio: toda la verificación de autorización irá a la capa de servicio y tendremos que verificar antes de cada operación de db si el usuario tiene permiso para hacerlo. (Utilizando
cancancan / pundit
) y si el usuario no tiene permiso, envíe el mensaje de error a la capa API.
Sería de gran ayuda si alguien pudiera sugerir en función de su experiencia.