[英]Ember.js authentication, pushstate and routing
我想知道是否有人對Ember.js有任何關於路由和pushstate的想法。
驗證的典型Ember示例是:
aStateManager = Em.StateManager.create({
initialState: 'unauthenticated',
authenticated: Em.State.create({}),
unauthenticated: Em.State.create({
authenticate: function(stateManager, context){
stateManager.goToState('authenticated')
}
})
})
aStateManager.send('authenticate')
如果始終將用戶發送到根URL,這將起作用。 但是,如果用戶在地址欄中鍵入url(例如'/ api / resource / 1'),有什么方法可以判斷用戶是否在每個狀態中都經過身份驗證?
我想我要找的是像before_filter這樣的軌道。
有沒有人為這種常見情況提出解決方案?
我們將面臨任何類型的身份驗證的問題是,用戶可以完全訪問所有模型,並可以更改其中的數據並為自己提供以前沒有的權限。 每次聯系服務器都會很痛苦。
我能想到的一個解決方案是使用freezable mixin和對象的isDirty標志。 我們可以將用戶的權限作為DS模型(如果我們使用的是ember數據),然后將其定義為凍結。 現在我們創建一個權限檢查mixin,檢查模型是否臟(即它已被更改)。 並且還要尊重代碼的所有其他部分中的凍結狀態。
當然我沒有考慮過其他各種用例,但這應該是一個有價值的起點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.