![](/img/trans.png)
[英]How to I prevent user from accessing the page of my react app directly by entering the URL, and redirect them back to login page
[英]How can I stop a user from accessing another route in a single page app directly in Backbone and Nodejs?
我正在构建一个需要登录的应用程序,如果登录成功,它将登录到另一个名为“事件”的页面。 但是,Backbone使用URL栏中的哈希,因此,永远不会将有人访问该页面的请求发送到NodeJs Server。
事实是,没有登录的人只需输入http://www.mywebsite.com/#events就可以访问该页面
如何预防?
覆盖骨干路由器中的“执行”功能。
从文档:
router.execute(回调,args)
每当路由匹配并且其对应的回调将要执行时,在路由器内部都会调用此方法。 覆盖它以执行路由的自定义解析或包装,例如,在将查询字符串传递到路由回调之前解析查询字符串,如下所示:
因此,例如:( http://plnkr.co/edit/BqD4YfjQYz2RITWNhBKZ?p=preview )
var Router = Backbone.Router.extend({
execute: function(callback, args) {
if(!someLoginFunctionCheck()) {
this.navigate('#')
} else {
if (callback) callback.apply(this, args);
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.