正确使用Firebase身份验证?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正确使用Firebase身份验证?相关的知识,希望对你有一定的参考价值。
我正在开发一个nodejs应用程序。目前我有一个登录页面和一个主页,用户登录后应该可以访问。
我决定使用Firebase提供的Google和Facebook身份验证。我已经实现了它,但我不确定这是否是正确的方法。 Firebase也提供了admin-sdk,我是否需要使用它?
这是我的代码 - 登录页面 -
<script src="https://www.gstatic.com/firebasejs/4.10.1/firebase.js"></script>
<script>
// Initialize Firebase
var config = {
apiKey: "*****", authDomain: "*****", databaseURL: "*****", projectId: "*****", storageBucket: "*****", messagingSenderId: "*****"
};
firebase.initializeApp(config);
</script>
<script src="https://cdn.firebase.com/libs/firebaseui/2.6.2/firebaseui.js"></script>
<link type="text/css" rel="stylesheet" href="https://cdn.firebase.com/libs/firebaseui/2.6.2/firebaseui.css" />
<script type="text/javascript">
// FirebaseUI config.
var uiConfig = {
signInSuccessUrl: '/home',
signInOptions: [
firebase.auth.GoogleAuthProvider.PROVIDER_ID,
firebase.auth.FacebookAuthProvider.PROVIDER_ID,
],
tosUrl: '/terms-of-use'
};
var ui = new firebaseui.auth.AuthUI(firebase.auth());
ui.start('#firebaseui-auth-container', uiConfig);
</script>
<script>
firebase.auth().onAuthStateChanged(function (user) {
if (user) {
window.location.replace("/home");
} else {
}
}, function (error) {
console.log(error);
});
</script>
主页-
<script src="https://www.gstatic.com/firebasejs/4.10.1/firebase.js"></script>
<script>
// Initialize Firebase
var config = {
apiKey: "*****", authDomain: "*****", databaseURL: "*****", projectId: "*****", storageBucket: "*****", messagingSenderId: "*****"
};
firebase.initializeApp(config);
</script>
<script>
firebase.auth().onAuthStateChanged(function (user) {
if (user) {
// User is signed in.
} else {
window.location.replace("/");
}
}, function (error) {
console.log(error);
});
var signOutButton = document.getElementById("sign-out-btn");
signOutButton.addEventListener("click", function () {
firebase.auth().signOut().then(function () {
// Sign-out successful.
}).catch(function (error) {
// An error happened.
});
});
</script>
基本上我无法弄清楚在应用程序中适合firebase的位置以及我是否以最佳方式使用它。这里有很多配置,而且我必须写的代码很少,这让我有点不舒服。可以请任何人解释firebase auth应该使用或指向正确的方向。谢谢。
getting started with the Admin SDK documentation说:
Admin SDK允许您从特权环境与Firebase进行交互...
特权环境是您可以控制的,例如:您的笔记本电脑/台式机,用于托管内容的服务器,或项目的云功能。如果这是您要与应用的常规用户共享的网页,则您不应使用Admin SDK。
您在顶部的配置只是一系列属性,允许各种Firebase SDK在Google服务器上查找您的项目。将这些暴露给常规客户并不是安全漏洞,事实上,必须允许他们访问您的应用程序的后端。
你分享的代码看起来很好。如果您不确定该方法,您可能会发现首先使用Firebase codelab for web developers更容易,它会引导您使用Firebase构建聊天应用程序。
以上是关于正确使用Firebase身份验证?的主要内容,如果未能解决你的问题,请参考以下文章
将 Firebase 身份验证与 Firestore 一起使用的正确方法是啥?
Firebase 电话身份验证验证 ID 从未设置。 (颤振iOS)
此应用无权使用 Firebase 身份验证。请确认在 Firebase 中配置了正确的包名称和 SHA-1