2016-05-31 4 views
2

私のウェブとの間で認証を共有する方法がわかりません。たとえば、ユーザーがlogin.htmlにログインした後、ホームページに認証を渡したいとします。ファイアーベース通過ウェブページ間の認証

は、問題は何ですか:ユーザーがlogin.htmlとにログインした後

、認証が作成されます。

//login.html 
var user = firebase.auth().currentUser; 
if (user) { 
    // User is signed in. 
} 

しかし、私がログインしているユーザーの後にhome.htmlするLOCATION.HREFを変更する必要があります。

//login.html 
if (user) { 
    // User is signed in. 
    location.href = "home.html"; 
} 

ので、Webページを変更する際の認証を維持するソリューションは何ですか?

//home.html 
    if (user) { 
     // 
    }else { 
     // No user is signed in. 
    } 

ウェブ/ login.htmlと< - >ウェブ/ home.html

答えて

1

Firebaseは、ローカルストレージにセッションIDを格納することにより、ページ間の認証状態を追跡します。

ユーザーにとってスムーズなフローを確保する最も良い方法は、monitor the authentication stateです。そのドキュメントから:

現在のユーザーを取得するための推奨方法は、認証オブジェクトのオブザーバを設定することにより、次のとおりです。

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

オブザーバを使用することにより、あなたはその認証オブジェクトを確保します現在のユーザーを取得すると、初期化などの中間状態にはなりません。

+2

ログインページでcurrentUserを正しく取得していますが、同じ方法でfirebase.auth()を呼び出そうとすると、ホームページのcurrentUser.uidはnullになります。どうして? – Lion789

関連する問題