이메일/비밀번호 사용자 관리 - 웹 SDK
이 페이지의 내용
개요
Web SDK 에는 이메일/비밀번호 인증 제공자와 연결된 사용자를 관리 수 있는 클라이언트 객체 가 포함되어 있습니다.
새 사용자 계정 등록
새 이메일/비밀번호 사용자를 등록하려면 사용자의 이메일 주소와 원하는 비밀번호로 registerUser()
메서드를 호출합니다. 다른 이메일/비밀번호 사용자와 관련이 없는 이메일 주소를 사용해야 하며 비밀번호는 6자에서 128자 사이여야 합니다.
const email = "someone@example.com"; const password = "Pa55w0rd!"; await app.emailPasswordAuth.registerUser({ email, password });
신규 사용자의 이메일 주소 확인
제공자가 신규 사용자를 자동으로 확인하도록 구성하지 않는 한, 신규 사용자는 앱에 로그인하기 전에 이메일 주소 소유 여부를 확인해야 합니다.
제공자 가 확인 이메일 을 보내도록 구성된 경우, 사용자가 등록하면 Atlas App Services 에서 자동으로 확인 이메일 을 보냅니다. 이메일 에는 이메일 전송 후 30 분 동안 유효한 토큰으로 구성된 Email Confirmation URL 에 대한 링크가 포함되어 있습니다. 사용자가 초기 이메일 을 받지 못했거나 제때 확인 링크를 클릭하지 않은 경우 SDK를 사용하여 확인 이메일 을 다시 보낼 수 있습니다.
또는 제공자가 확인 함수를 실행 하도록 구성된 경우 Atlas App Services는 사용자가 등록할 때 사용자 지정 Atlas Function 를 자동으로 실행합니다. 사용자 지정 확인 함수에 대한 호출이 실패하면 SDK를 사용하여 사용자 확인 함수를 다시 시도할 수 있습니다.
사용자 확인 완료
등록된 사용자를 확인하고 로그인을 허용하려면 유효한 token
및 tokenId
이(가) 필요합니다. 이러한 값은 공급자 구성에 따라 다른 위치에서 사용할 수 있습니다.
제공자가 확인 이메일을 보내도록 설정된 경우
token
및tokenId
값이 Email Confirmation URL 쿼리 매개변수로 포함됩니다.제공자 가 확인 함수를 실행 하도록 설정하다 경우
token
및tokenId
값이 함수에 인수로 전달됩니다.
등록된 사용자를 확인하려면 사용자의 유효한 token
및 tokenId
을(를) 사용하여 confirmUser()
메서드를 호출합니다:
await app.emailPasswordAuth.confirmUser({ token, tokenId });
사용자 확인 방법 재시도
SDK는 사용자 확인 이메일을 재전송하거나 사용자 지정 확인 방법을 재시도할 수 있는 방법을 제공합니다.
확인 이메일 재전송
사용자에게 확인 이메일을 재전송하려며 사용자의 이메일 주소로 resendConfirmationEmail()
메소드를 호출하세요.
const email = "someone@example.com"; // The user's email address await app.emailPasswordAuth.resendConfirmationEmail({ email });
사용자 확인 함수 재시도
Realm 버전의 새로운 기능: Web v1.4.0
사용자 지정 확인 함수 를 다시 실행하려면 사용자의 이메일 주소로 retryCustomConfirmation()
메서드를 호출합니다.
const email = "someone@example.com"; // The user's email address await app.emailPasswordAuth.retryCustomConfirmation({ email });
사용자 비밀번호 재설정
비밀번호 재설정 이메일 보내기
제공자가 비밀번호 재설정 이메일을 보내도록 구성된 경우 SDK를 사용하여 사용자에게 비밀번호 재설정 이메일을 보낼 수 있습니다. 이메일에는 구성된 Password Reset URL 에 대한 링크가 포함되어 있습니다.
// The user's email address const email = "joe.jasper@example.com"; await app.emailPasswordAuth.sendResetPasswordEmail({ email });
비밀번호 재설정 함수 호출
제공자가 비밀번호 재설정 함수를 실행하도록 구성된 경우 SDK를 사용하여 함수를 실행할 수 있습니다. 사용자의 이메일과 새 비밀번호가 포함된 객체를 전달합니다. App Services 백 엔드의 암호 재설정 함수에 사용할 추가 인수를 포함할 수도 있습니다.
// The user's email address const email = "joe.jasper@example.com"; // The new password to use const password = "newPassw0rd"; // Additional arguments for the reset function const args = []; await app.emailPasswordAuth.callResetPasswordFunction( { email, password }, ...args );
비밀번호 재설정 완료
사용자가 비밀번호 재설정 이메일 을 보내 거나 비밀번호 재설정 함수를 호출하여 비밀번호 재설정 을 요청하면 Realm 은 30 분 이내에 비밀번호 재설정을 완료하는 데 사용할 수 있는 고유한 token
및 tokenId
값 쌍을 생성합니다. 초기 요청 의 .
await app.emailPasswordAuth.resetPassword({ password: "newPassw0rd", token, tokenId, });
예시
토큰 및 토큰 ID 가져오기
제공자가 기본 제공 비밀번호 재설정 이메일을 사용하는 경우 token
및 tokenId
이(가) 비밀번호 재설정 URL에 쿼리 매개변수로 포함됩니다. 다음과 같이 액세스할 수 있습니다.
const params = new URLSearchParams(window.location.search); const token = params.get("token"); const tokenId = params.get("tokenId"); if (!token || !tokenId) { throw new Error( "You can only call resetPassword() if the user followed a confirmation email link" ); }