Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

AppProvider(@realm/react)

이 페이지의 내용

  • 프롭
  • AppProvider 구성
  • AppProvider와 함께 사용되는 후크
  • useAuth()
  • 결과
  • login(credentials)
  • loginWithAnonymous()
  • logInWithApiKey(key)
  • logInWithEmailPassword(credentials)
  • logInWithJWT(credentials)
  • logInWithGoogle(credentials)
  • logInWithApple(idToken)
  • logInWithFacebook(accessToken)
  • logInWithFunction(페이로드)
  • logOut()
  • useEmailPasswordAuth()
  • login(credentials)
  • logOut()
  • 등록(인수)
  • Confirm(인수)
  • resendConfirmationEmail(args)
  • retryCustomConfirmation(args)
  • sendResetPasswordEmail(args)
  • resetPassword(args)
  • searchResetPasswordFunction(args, restArgs)
  • useApp()
서명 입력
AppProvider(props, context?): null | ReactElement<any, any>

AppProvider 내에 중첩된 구성 요소는 App Services App에 액세스하고 AppProvider 후크를 사용할 수 있습니다.

AppConfiguration 의 모든 속성은 AppProvider 에 프롭으로 전달할 수 있습니다.

앱 클라이언트를 설정하려면 AppProviderid 프롭에 앱 ID 문자열을 전달합니다. AppProvider 를 사용하여 앱에 액세스해야 하는 모든 구성 요소를 래핑합니다.

import React from 'react';
import {AppProvider} from '@realm/react';
function AppWrapper() {
return (
<View>
<AppProvider id={APP_ID}>
<MyApp />
</AppProvider>
</View>
);
}

여러 앱 클라이언트 인스턴스를 만들어 여러 앱에 연결할 수 있습니다. 동일한 앱 ID 를 주식 하는 모든 앱 클라이언트 인스턴스는 동일한 기본 연결을 사용합니다.

중요

앱 초기화 후 앱 구성 변경하기

버전 realm@12.6.0에서 변경됨: baseUrl 이 캐시되지 않습니다.

앱 클라이언트를 초기화하면 구성이 내부적으로 캐시됩니다. 동일한 프로세스 내에서 구성을 변경하여 앱을 '닫았다'가 다시 열어도 아무런 효과가 없습니다. 클라이언트는 캐시된 구성을 계속 사용합니다.

React Native SDK 버전 12.6.0 부터는 의 이 baseUrl AppConfiguration 캐시 되지 않습니다 . 즉, baseUrl 를 변경할 수 있으며 앱 클라이언트 는 업데이트된 구성을 사용합니다. 이전 SDK 버전에서는 캐시된 앱 구성의 baseUrl 변경 사항이 적용되지 않았습니다.

서명 입력
useAuth(): UseAuth

useAuth 에는 모든 App Services 인증 제공자에 대한 인증 방법이 있습니다.

서명 입력
result: AuthResult

인증 후크 작업의 결과입니다. 예를 들어 result.operation 은 현재 작업의 이름을 제공합니다.

열거형 값

  • state. '시작되지 않음', '보류 중', '성공', '오류'일 수 있습니다.

  • operation. 모든 작업 이름 목록은 API 설명서를 참조하세요.

  • pending. true 또는 false 수 있습니다.

  • success. true 또는 false 수 있습니다.

  • error. 오류 기반 객체 또는 정의되지 않은 객체입니다.

서명 입력
logIn(credentials: Realm.Credentials): void

매개변수

  • credentials. 지원되는 모든 Realm 인증에서 제공하는 Realm 자격 증명입니다.

예시

Realm에서 지원하는 인증 메커니즘을 사용하여 사용자를 로그인합니다. 사용자가 로그인할 때 호출되면 현재 사용자가 새 사용자로 전환됩니다. 일반적으로 보다 구체적인 로그인 방법을 사용하는 것이 좋습니다.

const {logIn, result} = useAuth();
useEffect(() => logIn(Realm.Credentials.anonymous()), []);
if(result.pending) {
return (<LoadingSpinner/>)
}
if(result.error) {
return (<ErrorComponent/>)
}
if(result.success) {
return (<SuccessComponent/>)
}
//...
서명 입력
logInWithAnonymous(): void

예시

익명 인증 제공자로 로그인합니다.

const {logInWithAnonymous, result} = useAuth();
const performLogin = () => {
logInWithAnonymous();
};
서명 입력
logInWithApiKey(key: string): void

매개변수

  • key. App Services 사용자에 연결된 문자열입니다.

예시

API 키로 로그인합니다.

const {logInWithApiKey, result} = useAuth();
const performLogin = () => {
const key = getApiKey(); // user defined function
logInWithApiKey(key);
};
서명 입력
logInWithEmailPassword(credentials: {
email: string;
password: string;
}): void

매개변수

  • credentials. emailpassword 필드가 있는 객체입니다.

예시

이메일/비밀번호로 로그인합니다.

const {logInWithEmailPassword, result} = useAuth();
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const performLogin = () => {
logInWithEmailPassword({email, password});
};
서명 입력
logInWithJWT(token: string): void

매개변수

  • credentials. 사용자 JSON web token의 문자열 표현입니다.

예시

JSON Web Token(JWT)으로 로그인합니다.

const {logInWithJWT, result} = useAuth();
const performLogin = () => {
const token = authorizeWithCustomerProvider(); // user defined function
logInWithJWT(token);
};
서명 입력
logInWithGoogle(credentials: {
idToken: string;
} | {
authCode: string;
}): void;

매개변수

  • credentials. Google ID 서비스에서 가져온 문자열 토큰을 포함해야 하는 idToken 또는 authCode 필드가 있는 객체입니다.

예시

Google에 로그인합니다.

const {logInWithGoogle, result} = useAuth();
const performLogin = () => {
const token = getGoogleToken(); // user defined function
logInWithGoogle({idToken: token});
};
서명 입력
logInWithApple(idToken: string): void;

매개변수

  • idToken. Apple SDK에서 가져온 문자열입니다.

예시

Apple로 로그인합니다.

const {logInWithApple, result} = useAuth();
const performLogin = () => {
const token = getAppleToken(); // user defined function
logInWithApple(token);
};
서명 입력
logInWithFacebook(accessToken: string): void;

매개변수

  • accessToken. Facebook SDK에서 가져온 문자열입니다.

예시

Facebook으로 로그인합니다.

const {logInWithFacebook, result} = useAuth();
const performLogin = () => {
const token = getFacebookToken(); // user defined function
logInWithFacebook(token);
};
서명 입력
logInWithFunction<PayloadType extends Record<string, unknown>>(payload: PayloadType): void;

매개변수

  • payload. 로그인 요청을 처리하는 App Services 함수에 전달하려는 사용자 정보가 포함된 객체입니다.

예시

사용자 지정 함수로 로그인합니다.

const {logInWithFunction, result} = useAuth();
const performLogin = () => {
const customPayload = getAuthParams(); // user defined arguments
logInWithFunction(customPayload);
};
서명 입력
logOut(): void;

예시

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

const {logOut, result} = useEmailPasswordAuth();
const performLogout = () => {
logOut();
}
서명 입력
result: AuthResult

인증 후크 작업의 결과입니다. 예를 들어 result.operation 은 현재 작업의 이름을 제공합니다.

열거형 값

  • state. '시작되지 않음', '보류 중', '성공', '오류'일 수 있습니다.

  • operation. 모든 작업 이름 목록은 API 설명서를 참조하세요.

  • pending. true 또는 false 수 있습니다.

  • success. true 또는 false 수 있습니다.

  • error. 오류 기반 객체 또는 정의되지 않은 객체입니다.

서명 입력
logIn(credentials: { email: string; password: string }): void;

매개변수

  • credentials. emailpassword 속성을 포함하는 객체입니다.

예시

이메일과 비밀번호를 사용하여 사용자를 로그인합니다. logIn(Realm.Credentials.emailPassword(email, password)) 을(를) 호출할 수도 있습니다. 로그인한 사용자의 Realm.User 인스턴스를 반환합니다.

const {logIn, result} = useEmailPasswordAuth();
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const performLogin = () => {
logIn({email, password});
};
if(result.pending) {
return (<LoadingSpinner/>)
}
if(result.error) {
return (<ErrorComponent/>)
}
if(result.success) {
return (<SuccessComponent/>)
}
//...
서명 입력
logOut(): void;

예시

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

const {logOut, result} = useEmailPasswordAuth();
const performLogout = () => {
logOut();
}
서명 입력
register(args: { email: string; password: string }): void;

매개변수

  • args. emailpassword 속성을 포함하는 객체입니다.

예시

새 사용자를 등록합니다. 사용자 이메일과 비밀번호가 필요합니다.

const {register, result} = useEmailPasswordAuth();
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const performRegister = () => {
register({email, password});
};
서명 입력
confirm(args: { token: string; tokenId: string }): void;

매개변수

  • args. tokentokenId 속성을 포함하는 객체입니다.

예시

사용자 계정을 확인합니다. tokentokenId 이(가) 필요합니다.

const {confirm, result} = useEmailPasswordAuth();
const performConfirmation = () => {
confirm({token, tokenId});
};
서명 입력
resendConfirmationEmail(args: { email: string }): void;

매개변수

  • args. email 속성을 포함하는 객체입니다.

예시

확인 이메일을 재전송합니다.

const {resendConfirmationEmail, result} = useEmailPasswordAuth();
const [email, setEmail] = useState('');
const performResendConfirmationEmail = () => {
resendConfirmationEmail({email});
};
서명 입력
retryCustomConfirmation(args: { email: string }): void;

매개변수

  • args. email 속성을 포함하는 객체입니다.

예시

사용자 지정 함수를 사용하여 확인을 다시 시도합니다.

const {retryCustomConfirmation, result} = useEmailPasswordAuth();
const [email, setEmail] = useState('');
const performRetryCustomConfirmation = () => {
retryCustomConfirmation({email});
};
서명 입력
sendResetPasswordEmail(args: { email: string }): void;

매개변수

  • args. email 속성을 포함하는 객체입니다.

예시

비밀번호 재설정 이메일을 전송합니다.

const {sendResetPasswordEmail, result} = useEmailPasswordAuth();
const [email, setEmail] = useState('');
const performSendResetPasswordEmail = () => {
sendResetPasswordEmail({email});
};
서명 입력
resetPassword(args: { token: string; tokenId: string; password: string }): void;

매개변수

  • args. token, tokenIdpassword 속성을 포함하는 객체입니다.

예시

사용자의 비밀번호를 재설정합니다.

const {resetPassword, result} = useEmailPasswordAuth();
const [password, setPassword] = useState('');
const performResetPassword = () => {
resetPassword({token, tokenId, password});
};
서명 입력
callResetPasswordFunction<Args extends unknown[] = []>(
args: {
email: string;
password: string;
},
...restArgs: Args
): void;

매개변수

  • args. emailpassword 속성을 포함하는 객체입니다.

  • restArgs. 사용자 지정 비밀번호 재설정 함수에 전달해야 하는 추가 인수입니다.

예시

App Services 백엔드 비밀번호 재설정 함수를 호출합니다. 필요에 따라 함수에 인수를 전달할 수 있습니다.

const {callResetPasswordFunction, result} = useEmailPasswordAuth();
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const performResetPassword = () => {
callResetPasswordFunction({email, password}, "extraArg1", "extraArg2");
};
서명 입력
useApp<FunctionsFactoryType, CustomDataType>(): Realm.App<FunctionsFactoryType, CustomDataType>

예시

useApp() 후크는 Realm.App 인스턴스에 대한 액세스를 제공합니다.

import React from 'react';
import {useApp} from '@realm/react';
function MyApp() {
const app = useApp();
// Proceed to app logic...
}

반환

  • Realm.App AppProvider 에 의해 생성된 현재 Realm.App 의 인스턴스입니다.

돌아가기

RealmProvider(@realm/react)