簡體   English   中英

如何阻止用戶直接在Backbone和Nodejs中的單頁應用程序中訪問其他路由?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM