我是主干网的新手,我想使用主干网路由器实现一个非常简单的身份验证。
我实际上只在我的应用程序中使用主干网的路由器。当我启动应用程序时,我会呈现一个登录 View ,并且还会初始化主干路由器 (Backbone.history.start();)
如果登录成功,我调用 router.navigate('mainmenu', { trigger: true, replace: false });
导航到我呈现主菜单的新路径,但是当我单击浏览器的后退按钮,我导航回到登录 View 。
在导航到上一个 View (登录 View )之前,我想询问用户是否要先注销,如果注销过程顺利,那么他将被重定向到登录 View 。
我怎样才能做到这一点?我检查了其他几个问题,但答案对于我的用例来说太复杂了。我只是想阻止用户在登录后导航回特定 View 。
最佳答案
@Dethariel 感谢您的回答。我使用内置的 Backbone 路由器成功地实现了某种 session 。我从 Backbone.Router 执行方法中的小示例片段开始 backbone router execute snippet并做了类似下面的事情:
var Router = Backbone.Router.extend({
// define routes and calkbacks
// ....
// define routes and calkbacks
execute: function(callback, args) {
// execute will be called before the callback for each specific route
// get the next route in here
var nextRoute = Backbone.history.fragment;
if(user.LoggedIn()){
// check if nextRoute is '#login*'. I could make other checks as well
if(nextRoute.indexOf('login')>-1)
prompt('Log out?');
// else continue routing
else if (callback) callback.apply(this, args);
}
else if (callback) callback.apply(this, args);
}
});
这是非常简单的,我不认为这是最好的或安全的方式,但对我来说这是一个很好的起点。
关于javascript - 防止用户导航回 Backbone 的特定路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26501355/