여러 사용자와 작업 - Flutter SDK
Realm SDK 를 사용하면 여러 사용자 가 특정 기기에서 앱 에 동시에 로그인할 수 있습니다. Atlas App Services 클라이언트 애플리케이션은 여러 사용자가 동시에 로그인한 경우에도 단일 활성 사용자의 컨텍스트에서 실행 됩니다. 다시 로그인 할 필요 없이 인증된 사용자 간에 빠르게 전환할 수 있습니다.
중요
로그인한 사용자는 재인증 없이 누구나 활성 사용자가 될 수 있습니다. 이는 앱에 따라 보안 취약점일 수 있습니다. 예를 들어, 공유 장치의 사용자는 자격 증명을 제공하거나 명시적인 권한을 요구하지 않고도 동료의 로그인 계정으로 전환할 수 있습니다. 애플리케이션에 더 엄격한 인증이 필요한 경우 사용자 간 전환을 피하고 다른 사용자를 인증하기 전에 활성 사용자를 명시적으로 로그아웃하는 것이 좋습니다.
사용자 계정 상태
사용자가 특정 기기나 브라우저에서 Realm SDK를 통해 처음 로그인하면 SDK는 사용자 정보를 저장하고 기기에서 사용자의 상태를 추적합니다. 적극적으로 사용자를 제거하지 않는 한, 사용자가 로그아웃하더라도 사용자의 데이터는 기기에 남아 있습니다.
다음 상태는 특정 시점의 기기 내 사용자를 설명합니다.
인증됨: 장치에 로그인했지만 로그아웃하지 않았거나 세션이 취소되지 않은 모든 사용자입니다.
활성: 현재 특정 기기에서 앱을 사용 중인 인증된 단일 사용자입니다. SDK는 이 사용자를 발신 요청과 연결하고, Atlas App Services는 데이터 액세스 권한을 평가하고 이 사용자의 컨텍스트에서 함수를 실행합니다. 자세한 내용은 활성 사용자 를 참조하세요.
비활성: 현재 활성 사용자가 아닌 인증된 모든 사용자입니다. 언제든지 활성 사용자를 현재 비활성 사용자로 전환 할 수 있습니다.
로그아웃: 장치에서 인증했지만 이후 로그아웃했거나 세션이 취소된 모든 사용자입니다.
다음 다이어그램은 특정 이벤트가 발생할 때 App Services 클라이언트 앱 내의 사용자가 상태 간에 전환하는 방법을 보여줍니다.
장치에 새 사용자 추가
Realm SDK는 사용자가 해당 기기에 처음 로그인할 때 자동으로 해당 기기에 사용자를 추가합니다. 사용자가 로그인하면 즉시 애플리케이션의 활성 사용자가 됩니다.
final emailPwCredentials = Credentials.emailPassword("lisa@example.com", "myStr0ngPassw0rd"); await app.logIn(emailPwCredentials);
처음으로 사용자 로그인하는 방법에 대한 자세한 내용 은 새 사용자 계정 등록을 참조하세요.
장치의 모든 사용자 나열
반복 가능한{ 에 액세스 할 수 있습니다.앱의 App.users 를 읽어 기기에 저장된 모든 사용자 계정 의 속성. 이 Iterable에는 현재 인증 여부에 관계없이 특정 기기에서 클라이언트 앱 에 로그인한 모든 사용자가 포함됩니다.
final users = app.users;
기기에서 사용자 제거
객체 를 User
앱 .removeUser() 에 전달하여 기기에서사용자에 대한 모든 정보를 제거 하고 사용자를 자동으로 로그 아웃할 수 있습니다.
await app.removeUser(user!);
활성 사용자 변경
app.switchUser() 를 호출하여 앱의 활성 사용자 를 다른 로그인한 사용자로 전환할 수 있습니다.User
전환하려는 객체에서:
app.switchUser(otherUser);