2017-11-05 1 views
1

나는 문서에서와 같이 사용자 이메일 확인을 처리합니다. 사용자가 링크를 클릭하여 이메일을 확인하면 로그인해야 할 필요가 있습니까? 이 프로세스가 끝나면 콘솔에서 "firebase.auth(). currentUser"로 확인하면 null을 반환합니다. 확인 링크를 클릭하면 자동으로 로그인 할 것으로 예상됩니다.Firebase에서 사용자 이메일 확인 후 로그인해야합니까?

function handleVerifyEmail(auth, actionCode, continueUrl) { 
    // Try to apply the email verification code. 
    auth.applyActionCode(actionCode).then(function(resp) { 
    // Email address has been verified. 

    // TODO: Display a confirmation message to the user. 
    // You could also provide the user with a link back to the app. 

    // TODO: If a continue URL is available, display a button which on 
    // click redirects the user back to the app via continueUrl with 
    // additional state determined from that URL's parameters. 
    }).catch(function(error) { 
    // 
    }); 
} 

답변

1

이메일 확인이 자동 로그인되지 않습니다. 단지 사용자의 이메일을 확인합니다. 현재이 상황이 있습니다

  1. 사용자가 같은 장치의 연결을 열고는 사용자가 처음 로그인하고 이메일 확인을 보내 같은 브라우저에서 열하지만, ​​다른 응용 프로그램입니다. 계속 URL을 사용하면 사용자는 처음 로그인 한 페이지와 동일한 도메인의 페이지로 돌아갑니다.이 경우 사용자는 로그인하게됩니다.
  2. 사용자가 다른 장치 또는 브라우저에서 링크를 엽니 다. 이 경우 사용자는 로그인하지 않습니다. 사용자가 계속 URL을 클릭하고 리디렉션 된 후 다시 로그인해야합니다. 이메일 확인 다른 도메인에 발생할 수 있습니다 또는 이메일 좋은 생각이있을 수 있습니다 확인 후 조치 콜백 페이지에서 사용자 로그인, 모바일 앱에서 트리거 된 수 있고 매달려 인증을 떠날 수로

상태.

+0

답장을 보내 주셔서 감사합니다. 실제로 사용자가 이메일을 확인할 때 일부 데이터베이스 작업을 트리거하려고합니다. 하지만 불행히도 Firebase는 이메일 확인을 듣지 않으므로 로그인 한 사용자 만 허용하는 https 엔드 포인트로 처리하기로 결정했습니다. 하지만 사용자가 다른 장치 나 브라우저에서 확인 링크를 클릭하면 Firebase이 자동 로그인하지 않는 것처럼 보이므로 https 끝점에서 허용하지 않습니다. 필자는 사용자의 첫 번째 로그인을 생각할 수도 있지만 Firebase 문서에서는 "전자 메일 전달"계정이 아닌 "연합 ID 공급자"만 지원한다고합니다. 어떤 제안이 있으십니까? –

+0

이메일 확인 절차는 사용자를 로그인하는 방법이 아닙니다. 이메일 소유권을 확인하는 메커니즘 일뿐입니다. Firebase 문서는 "이메일 패스"계정이 아닌 "연합 ID 제공자"만 지원한다고 말합니다. 액션 코드를 node.js 클라이언트 sdk를 사용하여 'checkActionCode'에서 사용자 정보를 얻은 다음'applyActionCode'를 사용하여 검증을 완료하는 HTTP 엔드 포인트에 전달할 수 있습니다. 성공한 경우에만 Firebase Admin node.js SDK를 사용하여 관리자 권한으로 해당 사용자에게 필요한 데이터베이스 변경을 할 수 있습니다. – bojeil