私は以前に答えられたとは思わない質問があります。私は現在、PHPセッションに似たFirebaseのものを探しています。ユーザがFirebaseにログインしていない場合のリダイレクト方法
ウェブアプリケーションからログアウトすると、ユーザーはログインページにリダイレクトされます。しかし、彼らはhome.html
のようなダイレクトURLを入力してログイン画面をバイパスすることができます。
ページが読み込まれたときにonAuthStateChanged
が呼び出されている場合、どうなるかと思います。セッションのように、彼らがすぐにリダイレクトされるのは意味があります。残念ながら、彼らはそうではありません。
これは、ロード時にlogin.html
とdashboard.html
が呼び出されるコードです。誰もこの問題を引き起こす可能性のある間違いを見つけられますか?ありがとう!ここで
App.js
(function(){
const config ={
apiKey: " :) ",
authDomain: " :)",
databaseURL: " :) ",
storageBucket: " :)",
messagingSenderId: ":)"
};
firebase.initializeApp(config);
//Grab Login Elements
const loginBtn = document.getElementById('sign-in-btn');
const emailTxt = document.getElementById('user-email');
const passTxt = document.getElementById('user-password');
//Set the click event to sign the user in
loginBtn.addEventListener('click', e => {
const email = emailTxt.value;
const password = passTxt.value;
const auth = firebase.auth();
//Actually Sign In
const promise = auth.signInWithEmailAndPassword(email, password);
promise.catch(e=> console.log(e.message));
});
//Realtime Authstate Listener
firebase.auth().onAuthStateChanged(firebaseUser => {
if(firebaseUser){
window.location = 'dashboard.html'
}else{
window.location = 'login.html'
}
});
}());
はonAuthStateChanged
は、火災、ユーザーがログインしていないことを認識し、リダイレクトすることは理にかなってdashboard.html
<!DOCTYPE html>
<html>
<head>
<title>My App</title>
<link rel="stylesheet" type="text/css" href="styles/dashboardstyle.css">
<script src="https://www.gstatic.com/firebasejs/3.6.4/firebase.js"></script>
<body>
<script type="text/javascript" src="scripts/app.js"></script>
<script type="text/javascript" src="scripts/dashboard.js"></script>
</body>
</html>
の重要な部分です、 右?何か案は?皆さんありがとう!