managed 이메일/비밀번호 사용자 - Node.js SDK
이 페이지의 내용
새 사용자 계정 등록
새 이메일/비밀번호 사용자를 등록하려면 사용자의 이메일 주소 와 원하는 비밀번호를 EmailPasswordAuth.registerUser() 에 전달합니다. 이메일 주소 는 다른 이메일/비밀번호 사용자와 연결되어서는 안 되며 비밀번호는 6 ~ 128 자 사이여야 합니다.
await app.emailPasswordAuth.registerUser({ email: "someone@example.com", password: "Pa55w0rd!", });
신규 사용자의 이메일 주소 확인
제공자가 신규 사용자를 자동으로 확인하도록 구성하지 않는 한, 신규 사용자는 앱에 로그인하기 전에 이메일 주소 소유 여부를 확인해야 합니다.
사용자 확인 완료
등록된 사용자를 확인하고 로그인을 허용하려면 유효한 token
및 tokenId
가 필요합니다. 이러한 값은 제공자 구성에 따라 다른 위치에서 사용할 수 있습니다.
제공자가 확인 이메일을 보내도록 설정된 경우
token
및tokenId
값은 Email Confirmation URL 에 쿼리 매개변수로 포함됩니다.제공자 가 확인 함수를 실행 하도록 설정하다 경우
token
및tokenId
값이 함수에 인수로 전달됩니다.
등록된 사용자를 확인하려면 유효한 token
및 tokenId
을 EmailPasswordAuth.confirmUser()에 전달합니다.
const token = "someToken"; const tokenId = "someTokenId"; try { await app.emailPasswordAuth.confirmUser({ token, tokenId }); // User email address confirmed. console.log("Successfully confirmed user."); } catch (err) { console.log(`User confirmation failed: ${err}`); }
사용자 확인 방법 재시도
SDK는 사용자 확인 이메일을 재전송하거나 사용자 지정 확인 방법을 재시도할 수 있는 방법을 제공합니다.
확인 이메일 재전송
제공자가 확인 이메일을 보내도록 구성된 경우, 사용자가 등록하면 Atlas App Services에서 자동으로 확인 이메일을 보냅니다. 이메일에는 30 분 동안 유효한 토큰으로 구성된 Email Confirmation URL 에 대한 링크가 포함되어 있습니다. 사용자가 해당 기간 내에 링크를 따라 확인 및 확인을 하지 않을 경우, 새 확인 이메일을 요청해야 합니다.
사용자에게 새 확인 이메일 을 보내려면 사용자의 이메일 주소 를 EmailPasswordAuth.resendConfirmationEmail()에 전달합니다.
const email = "someone@example.com"; await app.emailPasswordAuth.resendConfirmation({ email });
사용자 확인 함수 재시도
사용자 지정 확인 함수 를 다시 실행하려면 사용자의 이메일 주소로 retryCustomConfirmation()
메서드를 호출합니다.
const email = "someone@example.com"; await app.emailPasswordAuth.retryCustomConfirmation({ email });
사용자 비밀번호 재설정
사용자 비밀번호 재설정은 여러 단계를 거쳐야 합니다.
클라이언트 앱에서는 사용자가 비밀번호를 재설정할 수 있는 UI를 제공합니다. 그런 다음 App Services App은 이메일을 보내거나 사용자의 신원을 확인하는 사용자 지정 함수를 실행할 수 있습니다.
사용자 신원을 확인한 후 비밀번호 재설정 요청을 완료할 수 있습니다.
비밀번호 재설정이 완료된 후, 사용자는 새로운 비밀번호를 사용하여 로그인할 수 있습니다.
다음으로 이동하여 선호하는 비밀번호 재설정 방법을 선택하세요.
Atlas App Services App
Authentication
Authentication Providers
Email/Password - EDIT 버튼을 누릅니다.
비밀번호 재설정 이메일 보내기
사용자의 신원을 확인하기 위해 비밀번호 재설정 이메일을 보내려면 비밀번호 재설정 이메일을 보내도록 앱을 구성해야 합니다.
비밀번호 재설정 프로세스 를 시작하려면 사용자의 이메일 을 사용하여 EmailPasswordAuth.sendResetPasswordEmail() 을 호출합니다. 이메일 에는 구성된 Password Reset URL 에 대한 링크가 포함되어 있습니다. 사용자는 30 분 이내에 이 URL 을 방문하여 재설정을 확인해야 합니다.
const email = "someone@example.com"; await app.emailPasswordAuth.sendResetPasswordEmail({ email });
사용자가 비밀번호 재설정 이메일에서 URL을 방문한 후 사용자의 이메일, 새 비밀번호, 고유 URL에 제공된 token
및 tokenId
를 사용하여 EmailPasswordAuth.resetPassword() 를 호출합니다.
await app.emailPasswordAuth.resetPassword({ password: "newPassw0rd", token, tokenId, });
사용자가 30분 이내에 비밀번호 재설정 이메일에 포함된 URL을 방문하지 않으면 token
및 tokenId
이(가) 만료됩니다. 비밀번호 재설정 프로세스를 다시 시작해야 합니다.
비밀번호 재설정 함수 호출
비밀번호 재설정 함수를 실행 하도록 앱을 구성할 때 EmailPasswordAuth.callResetPasswordFunction()을 호출할 때 실행되어야 하는 함수를 정의합니다.
이 함수는 사용자 이름, 비밀번호 및 여러 추가 인수를 사용할 수 있습니다. 이러한 인수를 사용하여 보안 질문 답변이나 사용자가 비밀번호 재설정을 성공적으로 완료하기 위해 전달해야 하는 기타 과제와 같은 세부 정보를 지정할 수 있습니다.
비밀번호 재설정 흐름을 직접 정의하려는 경우 사용자 지정 비밀번호 재설정 함수를 사용하는 것이 더 나을 수 있습니다. 예를 들어 특정 도메인에서 사용자 지정 비밀번호 재설정 이메일을 보낼 수 있습니다. 또는 이메일 이외의 서비스를 사용하여 사용자의 신원을 확인할 수 있습니다.
App Services 측에서 이 메서드를 호출할 때 실행되는 사용자 지정 비밀번호 재설정 함수를 정의합니다. 이 함수는 세 가지 가능한 상태 중 하나를 반환할 수 있습니다.
fail
pending
success
SDK에서는 fail
상태를 오류로 처리합니다. SDK callResetPasswordFunction()
는 반환 값을 받지 않으므로 pending
또는 success
상태를 클라이언트에 반환하지 않습니다.
서버 측 보류 중인 사례
사용자가 신원을 확인하기 위해 몇 가지 추가 단계를 수행하도록 하려는 경우 Atlas App Services 비밀번호 재설정 함수 가 pending
을 반환할 수 있습니다. 그러나 해당 반환 값은 SDK의 callResetPasswordFunction()
로 전달되지 않으므로 클라이언트 앱은 pending
상태를 처리하는 자체 로직을 구현해야 합니다.
const email = "someone@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 );
서버 측 함수가 사용자 지정 이메일 제공자를 사용하여 이메일을 보낼 수 있습니다. 또는 SMS를 사용하여 문자 메시지로 사용자의 신원을 확인할 수 있습니다.
Atlas App Services 비밀번호 재설정 함수 컨텍스트에서 token
및 tokenId
에 액세스할 수 있습니다. Atlas App Services 비밀번호 재설정 함수에서 이 정보를 전달하는 경우, 플랫폼별 딥링킹 또는 유니버설 링크를 사용하여 이러한 값을 앱에 다시 전달할 수 있습니다. 그런 다음 클라이언트 애플리케이션은 EmailPasswordAuth.resetPassword() 를 호출하여 비밀번호 재설정 흐름을 완료할 수 있습니다.
await app.emailPasswordAuth.resetPassword({ password: "newPassw0rd", token, tokenId, });
서버측 성공 사례
Atlas App Services 비밀번호 재설정 함수 가 함수 내에서 추가 유효성 검사를 수행하거나 비밀번호 재설정을 시도하기 전에 사용자 ID의 유효성을 검사한 경우, success
을 반환하도록 Atlas App Services 함수를 구성할 수 있습니다. 그러나 해당 반환 값은 SDK의 callResetPasswordFunction()
로 전달되지 않으므로 클라이언트 앱은 success
상태를 처리하는 자체 로직을 구현해야 합니다.
이 예제의 함수를 호출하면 전체 비밀번호 재설정 프로세스가 수행됩니다.
const email = "someone@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 );