>

firebase admin SDK로 사용자를 생성 한 후 확인 이메일을 보내려면 어떻게해야합니까? createUser function 를 결합하려고합니다 및 sendEmailVerification function 누군가 힌트 나 대답을 나타낼 수 있습니까? 감사합니다

업데이트 :

사용자 생성은 이미 앱에 로그인 한 관리자가 수행하므로 관리자는 대시 보드에서 사용자를 생성하는 것입니다. 이것은 등록 방법과 완전히 다릅니다.

업데이트 2 :

bojeil의 답변 을 따르려고했지만 사용자가 사용자 정의 토큰으로 로그인하는 단계가 여전히 남아 있습니다. 현재 관리자 세션과 충돌이 발생하고 관리자 사용자가 쫓겨 난 대신 새 사용자가 로그인하고 새 사용자가 로그 아웃 한 경우에도 관리자 사용자가 여전히 로그 아웃되어 다시 로그인해야합니다. 앱.

맞춤형 토큰을 얻은 후 앱 안에 내 코드가 있습니다 :

$http.post('/.custom-token', {uid: $scope.data.data.uid})
        .then(function (response) {
            console.log("custom token here:", response.data.token);
            firebase.auth().signInWithCustomToken(response.data.token)
                .then(function (firebaseUser) {
                    firebaseUser.sendEmailVerification();
                    firebase.auth().signOut().then(function() {
                        // Sign-out successful.
                        console.log("signed out success");
                    }, function(error) {
                        // An error happened.
                    });
                })
                .catch(function(error) {
                    // Handle Errors here.
                    var errorCode = error.code;
                    var errorMessage = error.message;
                    // ...
                });
        });

그래서 토큰을 받고 새 사용자에 로그인하고 전자 메일 확인 링크를 보낸 다음 새 사용자를 로그 아웃합니다. 그러나이 모든 작업을 수행하는 관리자 사용자도 로그 아웃됩니다. 내가 여기서 무엇을 놓치고 있습니까?

  • 답변 # 1

    이것은 할 수 있지만 할당량 제한에 도달 할 수 있습니다.

    firebase-admin 모듈 포함

    firebase 클라이언트 모듈 포함

    admin sdk를 사용하여 createUser를 통해 새 사용자 생성

    약속이 해결되면 사용자의 uid를 생성하십시오.

    admin SDK를 사용하여 해당 uid에 대한 사용자 정의 토큰을 만듭니다.

    클라이언트 SDK, 해당 사용자 정의 토큰을 사용하는 signInWithCustom 토큰 사용

    사용자가 프로세스에서 리턴되면 user.sendEmailVerification ()을 호출하십시오.

    클라이언트 SDK에서 해당 사용자를 로그 아웃합니다.

  • 답변 # 2

    이를 위해 Firebase Admin SDK를 사용할 필요조차 없습니다. 일반적인 Firebase 클라이언트 측 SDK를 사용할 수 있습니다.

    firebase.auth().createUserWithEmailAndPassword(email, password)
      .then(function(user) {
         console.log("User successfully created:", user.uid);
         return user.sendEmailVerification();
      })
      .then(function() {
        console.log("Email verification email successfully sent!");
      })
      .catch(function(error) {
        console.log("Error:", error);
      });
    
    

관련 자료

  • 이전 c - main의 이름을 변경하는 GCC 컴파일러/링커 옵션이 있습니까?
  • 다음 c++ - 값으로 전달하는 것보다 더 비싼 참조로 전달