En Función de sincronización es uno de los componentes fundamentales de Sync Gateway: su principal responsabilidad es definir qué usuario tiene acceso a qué documentos. En este screencast, aprenderá a utilizar el canal público (también conocido como canal !) para sincronizar documentos con usuarios que aún no han iniciado sesión en su aplicación. Esta función es especialmente útil cuando se diseña el viaje de embarque con datos dinámicos que pueden cambiarse en el backend y extraerse automáticamente cuando el usuario inicia la aplicación por primera vez. Consideraremos una aplicación para tomar notas y exploraremos lo siguiente:
- Utilice el canal público para insertar el Primeros pasos puede considerarse como la nota tutorial cuando el usuario inicia la aplicación por primera vez
- Asignar la nota creada por un usuario registrado a un canal al que sólo puede acceder ese usuario.
- Refuerce los permisos de escritura con requerirUsuario método
- Pruebe la función Sync con comandos curl
Encontrar el código de esta lección
A continuación encontrará el archivo de configuración de Sync Gateway:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
{ "log": ["CRUD"], "bases de datos": { "notas": { "servidor": "morsa:", "usuarios": { "INVITADO": {"desactivado": falso}, "william": {"contraseña": "pase"}, "admin": {"contraseña": "pase"} }, "sync": ` función sincronizar(doc, oldDoc) { interruptor(doc.seguridad) { caso "público": requerirUsuario("admin"); canal("!"); romper; por defecto: requerirUsuario(doc.nombre_usuario); canal(doc._id); acceda a(doc.nombre_usuario, doc._id); } } ` } } } |
Y los comandos curl para probar la función Sync:
- Mantener una nota pública a través de la API de administración
123rizo -X POST http://localhost:4985/notas/-H "Content-Type: application/json"-d "{"security": "public", "title": "Getting Started"}' - Autenticación de usuarios
123rizo -vX POST http://localhost:4984/notas/sesión-H "Content-Type: application/json"-d '{"nombre": "william", "password": "pass"}' - Persistir una nota de usuario
1234rizo -X POST http://localhost:4984/notas/-H "Content-Type: application/json"-H "Cookie: SyncGatewaySession=PASTE_COOKIE_VALUE"-d '{"nombre_usuario": "william", "title": "Visión general del recorrido del usuario"}'