App Services에 연결 - C++ SDK
앱 클라이언트는 Atlas App Services 백엔드 인터페이스입니다. 인증 및 Atlas Function에 대한 액세스를 제공합니다.
App Services App의 일부 기능은 사용자 계정과 연결되어 있습니다. 예를 들어, 사용자를 인증 해야 앱 기능에 액세스할 수 있습니다.
전제 조건
Atlas App Services 에 연결하려면 먼저 앱 ID 가 있는 App Services App 이 필요합니다. 시작하려면 App Services 문서에서 앱 만들기 를 참조하세요.
Atlas App Services UI에서 앱 ID 를 찾는 방법을 알아보려면 Atlas App Services 문서에서 앱 ID찾기 를 참조하세요.
앱 클라이언트에 액세스
앱의 ID를 인수로 사용하여 Realm::App::configuration() 을 생성합니다. 선택적으로 앱 구성을 통해 추가 세부 정보를 구성할 수 있습니다.
이
realm::App::configuration()
를 사용하여 앱 을 초기화합니다. 이App
인스턴스를 사용하여 클라이언트 애플리케이션 전체에서 Atlas App Services 기능에 액세스합니다.
auto appConfig = realm::App::configuration(); appConfig.app_id = APP_ID; auto app = realm::App(appConfig);
팁
Android 앱 빌드
Realm C++ SDK를 사용하는 Android 앱을 빌드할 때는 db_config 생성자의 file_path
매개변수에 filesDir.path
를 전달해야 합니다. 자세한 내용 은 Android 앱 빌드를 참조하세요.
사용자 지정 HTTP headers설정
프록시 설정과 함께 Atlas App Services 또는 Device Sync 를 사용하는 경우 사용자 지정 HTTP headers 를 설정해야 할 수 있습니다. 는 realm::App::configuration() 및 realm::db_config 에서사용자 Realm C++ SDK 지정 설정을 지원합니다.HTTP headers
앱 구성을 초기화할 때 문자열 헤더 키와 값의 맵을 전달합니다.
std::map<std::string, std::string> customHttpHeaders; customHttpHeaders.emplace("CUSTOM_HEADER_NAME", "CUSTOM_HEADER_VALUE"); auto appConfig = realm::App::configuration(); appConfig.app_id = APP_ID; appConfig.custom_http_headers = customHttpHeaders; auto app = realm::App(appConfig);
함수를 호출 하면 앱은 이러한 사용자 지정 헤더를 사용합니다.
Realm Mobile Sync에 사용자 지정 헤더를 사용 하려면 영역::db_config에서 헤더를 추가로 설정해야 합니다.
Realm에서 HTTP 프록시 사용
HTTP proxy를 구성한 경우 HTTP tunneling을 사용하여 Realm 트래픽을 라우팅할 수 있습니다.
HTTP proxy를 사용하도록 Realm을 구성하려면 다음을 수행하세요.
프록시에 대한 세부 정보를 사용하여 proxy_config 를 초기화합니다.
auto proxyConfig = realm::proxy_config(); proxyConfig.port = 8080; proxyConfig.address = "127.0.0.1"; proxyConfig.username_password = {"username", "password"}; auto appConfig = realm::App::configuration(); appConfig.app_id = APP_ID; appConfig.proxy_configuration = proxyConfig; auto app = realm::App(appConfig); auto user = app.get_current_user(); auto syncConfig = user->flexible_sync_configuration(); syncConfig.set_proxy_config(proxyConfig); auto syncedRealm = realm::db(syncConfig);
앱 메타데이터 암호화
App Services에 연결하면 서비스 영역은 기기에 추가 메타데이터 파일을 생성합니다. 이러한 메타데이터 파일에 대한 자세한 내용은 C++용 Atlas Device SDK를 참조하세요.
영역을 암호화하는 것과 유사하게 App Services가 클라이언트 디바이스에 저장하는 메타데이터를 암호화할 수 있습니다.
Apple 기기에서는 메타데이터가 기본적으로 암호화됩니다. 이 기능을 비활성화하려면 환경 변수에 REALM_DISABLE_METADATA_ENCRYPTION
을(를) 추가합니다.
다른 플랫폼에서 메타데이터 암호화를 활성화하려면 Realm::App::configuration에서 metadata_encryption_key
를 설정해야 합니다.
// Check if we already have a key stored in the platform's secure storage. // If we don't, generate a new one. // Use your preferred method to generate a key. This example key is // NOT representative of a secure encryption key. It only exists to // illustrate the form your key might take. std::array<char, 64> exampleKey = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0}; // Create and populate an App configuration. auto appConfig = realm::App::configuration(); appConfig.app_id = APP_ID; // Specify the metadata key. appConfig.metadata_encryption_key = exampleKey; // Use the configuration when you open the app. auto app = realm::App(appConfig);