1

이메일과 비밀번호 인증을 사용하여 angularJS 앱에서 firebase로 작업하고 있습니다. Firebase 2.x에서 3.x로, AngularFire를 1.x에서 2.x로 업데이트합니다.Firebase 3. 인증이 유지되지 않습니다

하지만 지금, 내 페이지를 새로 고침 할 때마다, 나는 재해야합니다

나는 마이그레이션을 수행하려면 다음 두 문서를 따라 영속 세션이없는 것처럼 인증하십시오.

localStorage 키를 확인했습니다 firebase:authUser 저는 이전에 expirationTime (실제로는 로그인의 타임 스탬프로 설정되어 있습니다)입니다. 사용자가 loggedin 경우

내가 사용 확인하려면 : $firebaseAuth().$getAuth()

편집 여기

내 문제의 작동 예를입니다 (계정 : toto123 : /암호 [email protected]) https://plnkr.co/edit/463Hse?p=preview

아무도 왜이 동작을 알고 있습니까?

+2

[문제를 재현하는 최소 코드] (http://stackoverflow.com/help/mcve)를 보지 않고도 도움이되지 않습니다. –

+0

지연 작업에 늦어서 미안합니다 (매우 큰 응용 프로그램이므로 많은 작업을 단순화해야합니다). – Tako

답변

3

초기 인증 상태가 해결 될 때까지 기다리지 않고 현재 사용자를 직접 확인한다고 추측합니다. 당신은 관찰자를 추가해야합니다

firebase.auth().onAuthStateChanged(function(user) { 
    if (user) { 
    // User is signed in. 
    } else { 
    // No user is signed in. 
    } 
}); 

https://firebase.google.com/docs/auth/web/manage-users

또한, 인증 상태가 그래서 당신이 활성화했는지 확인 웹 스토리지에 저장됩니다. (예 : 사파리 개인 모드 탐색에서는 상태가 유지되지 않습니다).

+0

좋아, 이것을 시도해 보겠습니다. 하지만 Firebase 2.x와 Angularfire 1.x에서 초기 인증 상태가 해결되기를 기다리지 않고'$ firebaseAuth(). $ getAuth() '를 사용했을 때 약간 혼란 스러웠습니다. 그리고 angularfire의 마이그레이션 가이드에서 "약속과 $ getAuth() 호출은 모두 계속 작동하지만 인증 페이로드는 약간 다를 것입니다."라고 그들은 말했습니다. 그래서 나는 할일이 없다고 생각하고있었습니다. – Tako

+0

고마워요.'$ waitForSignIn()'이 내 사용자가 인증되어 작동하는지 확인하기 전에 약속을 되 찾을 것을 기다리는 것을 알고 있습니다. – Tako

관련 문제