사용자 API 키 생성 및 관리 - React Native SDK
사용자 API 키를 사용하면 장치 또는 서비스가 사용자 자격 증명을 공유하지 않고도 사용자를 대신하여 App Services와 통신할 수 있습니다. 사용자 API 키는 인증된 사용자가 언제든지 철회할 수 있습니다. 사용자 API 키는 저절로 만료되지 않습니다.
인증된 사용자의 User.apiKeys 속성 으로 액세스하는 ApiKeyAuth 클라이언트 를 사용하여 사용자 API 키를 관리 수 있습니다.
React Hooks
@realm/react
을 사용하는 경우 UserProvider
로 래핑된 컴포넌트의 useUser()
후크를 사용하여 사용자의 ApiKeyAuth
클라이언트에 액세스할 수 있습니다.
import {useUser} from '@realm/react';
const user = useUser(); const createUserApiKey = async () => { const {_id, key, name, disabled} = await user?.apiKeys.create(apiKeyName); // ...Do something with API key like save it // or share it with external service that authenticates // on user's behalf. };
사용자 API 키 만들기
새 사용자 API 키 를 생성하려면 사용자의 모든 API 키 중에서 고유한 이름을 ApiKeyAuth.create()에 전달합니다.
SDK는 사용자 API 키 생성 시 해당 키의 값을 반환합니다. 로그인에 사용할 수 있도록 key
값을 안전하게 저장해야 합니다. key
값을 분실하거나 저장하지 않으면 이를 복구할 수 있는 방법이 없습니다. 새 사용자 API 키를 생성해야 합니다.
서버 API 키 또는 익명 사용자에 대한 사용자 API 키를 생성 할 수 없습니다 .
const {_id, key, name, disabled} = await user?.apiKeys.create(apiKeyName);
사용자 API 키 조회
사용자의 모든 API 키를 나열하는 배열을 가져오려면 ApiKeyAuth.fetchAll()을 호출합니다.
특정 API 키를 찾으려면 키의 _id
를 ApiKeyAuth.fetch()에 전달합니다.
const getUserApiKey = async () => { // List all of a user's keys const keys = await user.apiKeys.fetchAll(); // Get a specific key by its ID const key = await user!.apiKeys.fetch(apiKey!._id); };
API 키 활성화 또는 비활성화
사용자 API 키를 활성화하거나 비활성화하려면 키의 _id
를 ApiKeyAuth.enable() 또는 ApiKeyAuth.disable() 에 전달합니다. 키가 비활성화되면 사용자를 대신하여 로그인하는 데 사용할 수 없습니다.
await user!.apiKeys.enable(cloudApiKey!._id);
await user!.apiKeys.disable(cloudApiKey!._id);
API 키 삭제
사용자 API를 영구적으로 삭제하려면 키의 _id
를 ApiKeyAuth.delete() 에 전달합니다. 삭제된 키는 복구할 수 없습니다.
await user!.apiKeys.delete(cloudApiKey!._id);