loading backbone.js resources based on authenticat

2019-08-01 09:15发布

问题:

I'm building my first backbone app, and though I'm doing my authentication server side, there are features that non-authenticated users are unable to use, but because they are in my asset path, and part of my backbone files, everything gets loaded.

Is there a way to load only the resources that a user is actually able to use?

I'm using Rails with cancan to manage this server-side.

回答1:

You need to split the assets out in to separate groups: a group that can be used by anyone, and a group that can be used by authenticated users. Only send the code that the user is allowed to use, basically.

I wrote a post about doing this with asp.net mvc recently. the same idea applies to rails, though the use of the asset pipeline makes the implementation a bit different:

http://lostechies.com/derickbailey/2012/01/26/modularity-and-security-in-composite-javascript-apps/



回答2:

The best way is to create a Base view with a property named requireLogin: true/false.

All other views should inherit this view and the views which need authentication you should set requireLogin:true, for all others this property should be false.

After this you should handle the authentication base of this property.