그리고 동기화 기능 는 동기화 게이트웨이의 기본 구성 요소 중 하나로, 어떤 사용자가 어떤 문서에 액세스할 수 있는지 정의하는 것이 주요 임무입니다. 이 스크린캐스트에서는 공개 채널(! 채널이라고도 함)을 사용하여 아직 앱에 로그인하지 않은 사용자와 문서를 동기화하는 방법을 알아봅니다. 이 기능은 백엔드에서 변경할 수 있고 사용자가 앱을 처음 시작할 때 자동으로 가져올 수 있는 동적 데이터로 온보딩 여정을 설계할 때 특히 유용합니다. 메모 작성 애플리케이션을 예로 들어 다음 사항을 살펴보겠습니다:
- 공개 채널을 사용하여 시작하기 메모는 사용자가 앱을 처음 시작할 때의 튜토리얼 메모라고 생각하시면 됩니다.
- 등록된 사용자가 만든 노트를 해당 사용자만 액세스할 수 있는 채널에 매핑합니다.
- 를 사용하여 쓰기 권한을 적용합니다. 요구 사용자 메서드
- curl 명령으로 동기화 기능 테스트하기
이 레슨의 코드 찾기
아래에서 동기화 게이트웨이 구성 파일을 찾을 수 있습니다:
|
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"], "databases": { "notes": { "server": "walrus:", "users": { "GUEST": {"disabled": false}, "william": {"password": "pass"}, "admin": {"password": "pass"} }, "sync": ` function sync(doc, oldDoc) { switch(doc.security) { case "public": requireUser("admin"); channel("!"); break; default: requireUser(doc.user_name); channel(doc._id); access(doc.user_name, doc._id); } } ` } } } |
그리고 동기화 기능을 테스트하기 위해 curl 명령을 사용합니다:
- 관리자 API를 통해 공개 노트 유지
123curl -X POST https://localhost:4985/notes/-H "Content-Type: application/json"-d '{"security": "public", "title": "Getting Started"}' - 사용자 인증
123curl -vX POST https://localhost:4984/notes/_session-H "Content-Type: application/json"-d '{"name": "william", "password": "pass"}' - 사용자 노트 유지
1234curl -X POST https://localhost:4984/notes/-H "Content-Type: application/json"-H "Cookie: SyncGatewaySession=PASTE_COOKIE_VALUE"-d '{"user_name": "william", "title": "Overview of the user journey"}'