Cómo validar tipos de documentos en Sync Gateway

En el blog anterior de la serie Sync Gateway, exploramos Cómo autenticar y autorizar usuarios en una aplicación mediante algunas de las funciones de Sync Gateway. Continuando con esta serie, ahora exploraremos cómo validar los tipos de documento en Pasarela de sincronización para determinar su accesibilidad desde el lado del cliente móvil con un usuario en particular. Esto nos llevará a la discusión del Canal sobre cómo Couchbase Mobile hace la seguridad del lado de la lectura en el próximo blog de nuestra serie. Para la seguridad del lado de la escritura, exploraremos los métodos clave en la Función de Sincronización que permitirían que documentos particulares provenientes de usuarios conocidos sean escritos en la base de datos backend.

Función de sincronización

Imaginemos que tenemos un documento o muchos documentos en nuestra base de datos por ejemplo donde tenemos una clave de tipo a la que haremos referencia en nuestro código de validación. El corazón de Sync Gateway es la lógica de implementación de la función de sincronización y a continuación vemos cómo se puede verificar un tipo de documento para los controles de accesibilidad para los usuarios en una aplicación.  

Con el campo "tipo" en los documentos, podemos diferenciar por valores específicos de lo que representa el documento. Si un tipo de documento representa "escuelas", "vehículos" o "amigos", desde la función de sincronización podemos añadir una sentencia switch para capturar cómo vamos a permitir el procesamiento de diferentes tipos de documentos de diferentes maneras desde la función de sincronización. Lo primero que hacemos es comprobar si el tipo de documento es "amigos" y si la propiedad del propietario del documento coincide con el ID de usuario autenticado actual mediante la sentencia 'requerirUsuario()'. Si la propiedad owner coincide con el usuario autenticado actual, entonces daremos acceso a un documento a todos los amigos a través del canal 'items-doc.owner'. Esto significa básicamente que nadie más verá la lista de amigos que ha sido invitada por el usuario, ya que es privada sólo para el propio usuario.

La cláusula "else" es donde si no se trata de un documento de amigos o vehículos, entonces este será un documento de artículo de la escuela y de nuevo validamos que la propiedad del propietario coincide con el ID de usuario autenticado actual. Como antes, añadimos los ítems al canal 'ítems-' para la propiedad del propietario del ítem y le damos a ese usuario acceso a ese canal.

Mientras actualizamos la función de sincronización con la lógica de conmutación anterior, podemos añadir una prueba adicional para rechazar cualquier tipo de documento desconocido, de modo que si no es un documento del tipo "amigos", "vehículos" o "escuelas", rechazaremos el documento llamando a la función 'throw()'.

En lugar del método 'requireUser()', lo sustituiremos por el método método 'requireAccess("items-"+doc.owner)' donde ahora básicamente si quieres escribir un nuevo ítem en una lista, tienes que tener acceso al canal de ítems para el usuario en particular para el que quieres añadir el ítem.

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por William Hoang, Defensor del Desarrollador Móvil, Couchbase

William fue Developer Advocate en el equipo de Mobile Engineering/Developer Experience de Couchbase. Su amor por el café y el código le ha trascendido al mundo de los móviles, al tiempo que aprecia las experiencias presenciales fuera de línea. Anteriormente, William trabajó en el equipo de Relaciones con Desarrolladores en Twitter, BlackBerry y Microsoft, además de haber sido ingeniero de Software Embedded GPS en Research In Motion. William se licenció en Ingeniería Eléctrica de Software por la Universidad McGill.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.