RLM 사용자

Objective-C

@interface RLMUser : NSObject

스위프트

@_nonSendable(_assumed) class RLMUser : NSObject, @unchecked Sendable

RLMUser 인스턴스는 단일 Realm 앱 사용자 계정을 나타냅니다.

사용자에게는 하나 이상의 자격 증명이 연결되어 있을 수 있습니다. 이러한 자격 증명은 인증 제공자에 대해 사용자를 고유하게 식별하며, Atlas App Services 사용자 계정에 로그인하는 데 사용됩니다.

사용자 객체는 SDK API를 통해서만 판매되며 직접 초기화할 수 없습니다. 모든 스레드에서 사용자 객체에 액세스할 수 있습니다.

  • 이 사용자를 식별하는 고유한 Atlas App Services 문자열입니다. 이는 ID와는 다르다는 점에 유의하세요. 사용자는 여러 개의 ID를 가질 수 있지만 식별자는 하나입니다. RLMUserIdentity를 참조하세요.

    선언

    Objective-C

    @property (nonatomic, readonly) NS_SWIFT_NAME(id) NSString *identifier;

    스위프트

    var id: String { get }
  • 현재 사용자에게 연결된 ID 배열을 반환합니다.

    선언

    Objective-C

    @property (nonatomic, readonly) NSArray<RLMUserIdentity *> *_Nonnull identities;

    스위프트

    var identities: [RLMUserIdentity] { get }
  • App Services에 액세스하는 데 사용되는 사용자의 새로 고침 토큰입니다.

    기본적으로 새로 고침 토큰은 발행 후 60일이 지나면 만료됩니다. 앱의 새로 고침 토큰에 대한 이 시간을 30분에서 180일 사이로 구성할 수 있습니다.

    Admin UI 또는 Admin API에서 앱의 모든 세션에 대한 새로 고침 토큰 만료 시간을 구성할 수 있습니다.

    선언

    Objective-C

    @property (nonatomic, readonly, nullable) NSString *refreshToken;

    스위프트

    var refreshToken: String? { get }
  • App Services에 액세스하는 데 사용되는 사용자의 액세스 토큰입니다.

    이는 데이터 API 또는 GraphQL과 같은 Atlas App Services에 HTTP 요청을 하는 데 필요합니다. 민감한 데이터로 취급되어야 합니다.

    Realm SDK는 액세스 토큰을 자동으로 managed하고 만료되면 새로 고칩니다.

    선언

    Objective-C

    @property (nonatomic, readonly, nullable) NSString *accessToken;

    스위프트

    var accessToken: String? { get }
  • 사용자의 현재 상태입니다.

    선언

    Objective-C

    @property (nonatomic, readonly) RLMUserState state;

    스위프트

    var state: RLMUserState { get }
  • 사용자의 로그인 여부를 나타냅니다. 액세스 토큰과 새로 고침 토큰이 비어 있지 않으면 true를 반환합니다.

    선언

    Objective-C

    @property (nonatomic, readonly) BOOL isLoggedIn;

    스위프트

    var isLoggedIn: Bool { get }

라이프사이클

세션

사용자 지정 데이터

  • 사용자의 사용자 지정 데이터입니다. 이는 Atlas App Services App에서 구성합니다.

    선언

    Objective-C

    @property (nonatomic, readonly) NS_REFINED_FOR_SWIFT NSDictionary *customData;
  • 사용자의 프로필입니다.

    선언

    Objective-C

    @property (nonatomic, readonly) RLMUserProfile *_Nonnull profile;

    스위프트

    var profile: RLMUserProfile { get }
  • 사용자의 사용자 지정 데이터를 새로 고칩니다. 이렇게 하면 사실상 사용자의 인증 세션이 새로 고쳐집니다.

    선언

    Objective-C

    - (void)refreshCustomDataWithCompletion:
        (nonnull RLMUserCustomDataBlock)completion;

    스위프트

    func refreshCustomData() async throws -> [AnyHashable : Any]
  • 현재 인증된 사용자를 새 ID와 연결하며, 여기서 ID는 매개 변수로 지정된 자격 증명으로 정의됩니다. 이 RLMUser 가 현재 생성된 클라이언트로 인증된 경우에만 성공합니다. 성공하면 새 사용자가 새로 연결된 자격 증명과 함께 반환됩니다.

    선언

    Objective-C

    - (void)linkUserWithCredentials:(nonnull RLMCredentials *)credentials
                         completion:(nonnull RLMOptionalUserBlock)completion;

    매개변수

    credentials

    RLMCredentials 은 사용자를 새 ID에 연결하는 데 사용됩니다.

    completion

    연결이 완료되면 호출할 완료 핸들러입니다. 작업이 성공하면 결과에는 현재 로그인한 사용자를 나타내는 새 RLMUser 객체가 포함됩니다.

  • 사용자 제거

    이렇게 하면 로그아웃되고 이 사용자와 관련된 세션이 삭제됩니다. 사용자를 찾을 수 없거나 사용자가 이미 제거된 경우 완료 차단은 오류를 반환합니다.

    선언

    Objective-C

    - (void)removeWithCompletion:(nonnull RLMUserOptionalErrorBlock)completion;

    스위프트

    func remove() async throws

    매개변수

    completion

    완료 시 호출되는 콜백

  • Atlas App Services App에서 이 사용자를 영구적으로 삭제합니다.

    사용자 상태가 Removed 로 설정되고 세션이 파기됩니다. 삭제 요청이 실패하면 로컬 인증 상태가 변경되지 않습니다.

    선언

    Objective-C

    - (void)deleteWithCompletion:(nonnull RLMUserOptionalErrorBlock)completion;

    스위프트

    func delete() async throws

    매개변수

    completion

    완료 시 호출되는 콜백

  • 현재 사용자를 로그아웃합니다.

    사용자 상태는 익명 사용자인 경우 Removed , 이메일/비밀번호 또는 타사 인증 클라이언트에 의해 인증된 경우 LoggedOut 로 설정됩니다 로그아웃 요청이 실패하더라도 이 방법은 여전히 로컬 인증 상태를 지웁니다.

    선언

    Objective-C

    - (void)logOutWithCompletion:(nonnull RLMUserOptionalErrorBlock)completion;

    스위프트

    func logOut() async throws

    매개변수

    completion

    완료 시 호출되는 콜백

  • 사용자 API 키를 생성하고 수정하는 데 사용할 수 있는 사용자 API 키 인증 제공자용 클라이언트입니다.

    이 클라이언트는 인증된 사용자만 사용해야 합니다.

    선언

    Objective-C

    @property (nonatomic, readonly) RLMAPIKeyAuth *_Nonnull apiKeysAuth;

    스위프트

    var apiKeysAuth: RLMAPIKeyAuth { get }
  • 원격 MongoDB 인스턴스와 상호 작용하기 위한 클라이언트

    선언

    Objective-C

    - (nonnull RLMMongoClient *)mongoClientWithServiceName:
        (nonnull NSString *)serviceName;

    매개변수

    serviceName

    MongoDB 서비스의 이름

  • 제공된 이름과 인수를 사용하여 Atlas App Services 함수를 호출합니다.

    선언

    Objective-C

    - (void)callFunctionNamed:(nonnull NSString *)name
                    arguments:(nonnull NSArray<id<RLMBSON>> *)arguments
              completionBlock:(nonnull RLMCallFunctionCompletionBlock)completion;

    매개변수

    name

    호출할 Atlas App Services 함수의 이름입니다.

    arguments

    함수에 제공할 인수의 BSONArray 입니다.

    completion

    함수 호출이 완료되면 호출할 완료 핸들러입니다. 이 핸들러는 메인이 아닌 글로벌 DispatchQueue 에서 실행됩니다.