[英]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.