我正在尝试为我的网站实施强制登录。我遇到的问题是我无法找到办法。让我们说我创建了一个像...这样的SignIn页面。
var uiConfig = {
signInSuccessUrl: '<url-to-redirect-to-on-success>',
signInOptions: [
firebase.auth.GoogleAuthProvider.PROVIDER_ID,
firebase.auth.FacebookAuthProvider.PROVIDER_ID,
firebase.auth.TwitterAuthProvider.PROVIDER_ID,
firebase.auth.GithubAuthProvider.PROVIDER_ID,
firebase.auth.EmailAuthProvider.PROVIDER_ID,
firebase.auth.PhoneAuthProvider.PROVIDER_ID
],
tosUrl: '<your-tos-url>'
};
var ui = new firebaseui.auth.AuthUI(firebase.auth());
ui.start('#firebaseui-auth-container', uiConfig);
</script>
..在一个名为www.example.com/SignIn的页面上
如果我访问www.example.com/Index
我完全可以绕过所有的登录。
我认为这样的事情
if ( FirebaseUser.getCurrentUser () != null ) {
重定向到登录页面}
怎么样?
由于
答案 0 :(得分:2)
在onAuthStateChanged
页面上使用www.example.com/Index
侦听器:
firebase.auth().onAuthStateChanged(function(user) {
if (!user) {
window.location.assign('www.example.com/SignIn');
}
...
});
但是,这不是实施访问控制的正确方法。您应该通过以下任一机制强制执行登录访问:
此外,您可以使用会话cookie来执行此操作,具体取决于您的站点体系结构。 Firebase现在也提供了mint longer term session cookies
的功能