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
에 프롭으로 전달할 수 있습니다.
AppProvider 구성
앱 클라이언트를 설정하려면 AppProvider
의 id
프롭에 앱 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
변경 사항이 적용되지 않았습니다.
AppProvider와 함께 사용되는 후크
useAuth()
useAuth(): UseAuth
useAuth
에는 모든 App Services 인증 제공자에 대한 인증 방법이 있습니다.
결과
result: AuthResult
인증 후크 작업의 결과입니다. 예를 들어 result.operation
은 현재 작업의 이름을 제공합니다.
열거형 값
state
. '시작되지 않음', '보류 중', '성공', '오류'일 수 있습니다.operation
. 모든 작업 이름 목록은 API 설명서를 참조하세요.pending
.true
또는false
수 있습니다.success
.true
또는false
수 있습니다.error
. 오류 기반 객체 또는 정의되지 않은 객체입니다.
login(credentials)
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()
logInWithAnonymous(): void
예시
익명 인증 제공자로 로그인합니다.
const {logInWithAnonymous, result} = useAuth(); const performLogin = () => { logInWithAnonymous(); };
logInWithApiKey(key)
logInWithApiKey(key: string): void
매개변수
key
. App Services 사용자에 연결된 문자열입니다.
예시
API 키로 로그인합니다.
const {logInWithApiKey, result} = useAuth(); const performLogin = () => { const key = getApiKey(); // user defined function logInWithApiKey(key); };
logInWithEmailPassword(credentials)
logInWithEmailPassword(credentials: { email: string; password: string; }): void
매개변수
credentials
.email
및password
필드가 있는 객체입니다.
예시
이메일/비밀번호로 로그인합니다.
const {logInWithEmailPassword, result} = useAuth(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const performLogin = () => { logInWithEmailPassword({email, password}); };
logInWithJWT(credentials)
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)
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)
logInWithApple(idToken: string): void;
매개변수
idToken
. Apple SDK에서 가져온 문자열입니다.
예시
Apple로 로그인합니다.
const {logInWithApple, result} = useAuth(); const performLogin = () => { const token = getAppleToken(); // user defined function logInWithApple(token); };
logInWithFacebook(accessToken)
logInWithFacebook(accessToken: string): void;
매개변수
accessToken
. Facebook SDK에서 가져온 문자열입니다.
예시
Facebook으로 로그인합니다.
const {logInWithFacebook, result} = useAuth(); const performLogin = () => { const token = getFacebookToken(); // user defined function logInWithFacebook(token); };
logInWithFunction(페이로드)
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()
logOut(): void;
예시
현재 사용자를 로그아웃합니다.
const {logOut, result} = useEmailPasswordAuth(); const performLogout = () => { logOut(); }
useEmailPasswordAuth()
result: AuthResult
인증 후크 작업의 결과입니다. 예를 들어 result.operation
은 현재 작업의 이름을 제공합니다.
열거형 값
state
. '시작되지 않음', '보류 중', '성공', '오류'일 수 있습니다.operation
. 모든 작업 이름 목록은 API 설명서를 참조하세요.pending
.true
또는false
수 있습니다.success
.true
또는false
수 있습니다.error
. 오류 기반 객체 또는 정의되지 않은 객체입니다.
login(credentials)
logIn(credentials: { email: string; password: string }): void;
매개변수
credentials
.email
및password
속성을 포함하는 객체입니다.
예시
이메일과 비밀번호를 사용하여 사용자를 로그인합니다. 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()
logOut(): void;
예시
현재 사용자를 로그아웃합니다.
const {logOut, result} = useEmailPasswordAuth(); const performLogout = () => { logOut(); }
등록(인수)
register(args: { email: string; password: string }): void;
매개변수
args
.email
및password
속성을 포함하는 객체입니다.
예시
새 사용자를 등록합니다. 사용자 이메일과 비밀번호가 필요합니다.
const {register, result} = useEmailPasswordAuth(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const performRegister = () => { register({email, password}); };
Confirm(인수)
confirm(args: { token: string; tokenId: string }): void;
매개변수
args
.token
및tokenId
속성을 포함하는 객체입니다.
예시
사용자 계정을 확인합니다. token
및 tokenId
이(가) 필요합니다.
const {confirm, result} = useEmailPasswordAuth(); const performConfirmation = () => { confirm({token, tokenId}); };
resendConfirmationEmail(args)
resendConfirmationEmail(args: { email: string }): void;
매개변수
args
.email
속성을 포함하는 객체입니다.
예시
확인 이메일을 재전송합니다.
const {resendConfirmationEmail, result} = useEmailPasswordAuth(); const [email, setEmail] = useState(''); const performResendConfirmationEmail = () => { resendConfirmationEmail({email}); };
retryCustomConfirmation(args)
retryCustomConfirmation(args: { email: string }): void;
매개변수
args
.email
속성을 포함하는 객체입니다.
예시
사용자 지정 함수를 사용하여 확인을 다시 시도합니다.
const {retryCustomConfirmation, result} = useEmailPasswordAuth(); const [email, setEmail] = useState(''); const performRetryCustomConfirmation = () => { retryCustomConfirmation({email}); };
sendResetPasswordEmail(args)
sendResetPasswordEmail(args: { email: string }): void;
매개변수
args
.email
속성을 포함하는 객체입니다.
예시
비밀번호 재설정 이메일을 전송합니다.
const {sendResetPasswordEmail, result} = useEmailPasswordAuth(); const [email, setEmail] = useState(''); const performSendResetPasswordEmail = () => { sendResetPasswordEmail({email}); };
resetPassword(args)
resetPassword(args: { token: string; tokenId: string; password: string }): void;
매개변수
args
.token
,tokenId
및password
속성을 포함하는 객체입니다.
예시
사용자의 비밀번호를 재설정합니다.
const {resetPassword, result} = useEmailPasswordAuth(); const [password, setPassword] = useState(''); const performResetPassword = () => { resetPassword({token, tokenId, password}); };
searchResetPasswordFunction(args, restArgs)
callResetPasswordFunction<Args extends unknown[] = []>( args: { email: string; password: string; }, ...restArgs: Args ): void;
매개변수
args
.email
및password
속성을 포함하는 객체입니다.restArgs
. 사용자 지정 비밀번호 재설정 함수에 전달해야 하는 추가 인수입니다.
예시
App Services 백엔드 비밀번호 재설정 함수를 호출합니다. 필요에 따라 함수에 인수를 전달할 수 있습니다.
const {callResetPasswordFunction, result} = useEmailPasswordAuth(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const performResetPassword = () => { callResetPasswordFunction({email, password}, "extraArg1", "extraArg2"); };
useApp()
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
의 인스턴스입니다.