2012-06-25 87 views
2

我正在开发一个Backbone应用程序,它应该为多个用户提供服务。如何通过Backbone识别用户?

我使用Spring,它是后端的安全模块,它使用基本身份验证来允许访问每个url模式。

所以假设有两个用户Jack和Joe以及一个名为“item”的资源。由于http身份验证,两个人都不能看到彼此的项目。假设URL的是:

  • /用户/杰克/项目
  • /用户/约翰/项目

如何识别骨干用户?有没有一些聪明的方法来做到这一点,或者我应该从http头中选择用户名并将其注入到url中?

回答

1

在sync()过程中,骨干本身使用ID进行REST调用。现在您需要做的就是给自定义网址,型号:

var Item = Backbone.Model.extend({ 
    url: function() { 
    return '/users/'+this.get('name')+'/item'; 
    } 
}); 

虽然在这种情况下,你必须已经拥有的用户模型加载之前,你可以在它调用同步(),例如通过从像/ users /这样的URL中通过Collection添加它们。

+1

在['encodeURIComponent'](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent)调用中包装名称是个好主意。 –

+0

好赶上@ muistooshort –