基于firebase身份验证限制Javascript中的路由
我正在构建一个javascript应用程序。此应用程序使用一个名为基于firebase身份验证限制Javascript中的路由,javascript,firebase,routing,firebase-authentication,Javascript,Firebase,Routing,Firebase Authentication,我正在构建一个javascript应用程序。此应用程序使用一个名为jq-router的插件。当我执行如下操作时,地址栏会更改,但视图无法更改 $.router.onRouteBeforeChange(function(e, route, params){ firebase.auth().onAuthStateChanged(function(user){ if(!user && route.protected) { $.router
jq-router
的插件。当我执行如下操作时,地址栏会更改,但视图无法更改
$.router.onRouteBeforeChange(function(e, route, params){
firebase.auth().onAuthStateChanged(function(user){
if(!user && route.protected) {
$.router.go('landing', {}); <!-- This line calls the plugin.
}
});
});
您可以在此处访问整个插件:
同样,预期的结果是视图和地址栏更新。当前唯一更新的是地址栏,视图仍然呈现。您应该使用onViewChange/onRouteChanged事件&同时排除着陆路线避免循环。onRouteBeforeChange事件旨在通知路由即将更改,以便执行任何清理操作
$.router.onViewChange(function(e, viewRoute, route, params){
firebase.auth().onAuthStateChanged(function(user){
if(!user && route.name !== "landing" && route.protected) {
$.router.go('landing', {}); <!-- This line calls the plugin.
}
});
});
$.router.onViewChange(函数(e、viewRoute、route、params){
firebase.auth().onAuthStateChanged(函数(用户){
如果(!user&&route.name!==“landing”&&route.protected){
$.router.go('landing',{});
$.router.onViewChange(function(e, viewRoute, route, params){
firebase.auth().onAuthStateChanged(function(user){
if(!user && route.name !== "landing" && route.protected) {
$.router.go('landing', {}); <!-- This line calls the plugin.
}
});
});