在Backbone.js&中处理状态登录用户

时间:2012-01-21 23:11:56

标签: authentication login backbone.js state

在让我或她使用基于backbone.js的应用程序之前,我需要检查用户是否已登录并经过身份验证。

用户身份验证作为属性存储在本机骨干模型中,我在通过调用Backbone.history.start启动主路由器之前检查。这样 - 未经身份验证的用户将直接发送到登录页面。

这还够吗?

if (!myApp.state.loggedIn) {
    window.location.hash = "login"; // Set url to #login
}

Backbone.history.start();  // Start history as usual

2 个答案:

答案 0 :(得分:2)

如果对后端REST API的访问受到服务器端的保护,并且当我例如停止从开发人员工具执行代码并编辑模型的数据时(例如设置state.loggedIn),它将不允许访问任何用户数据为真,并设置一些用户我想从ID窃取数据作为我自己的)。您可能还应该存储cookie会话并且可能保护CSRF以防止跨站点请求伪造。

但是,只要用户没有真正登录或会话过期,基本上后端应该将用户重定向到登录页面。

答案 1 :(得分:1)

您还可以在过滤器之前和之后使用骨干异步来解决此类问题。

我创建了一个lib来为我们处理登录和会话。

https://github.com/chirag04/backbone-async-route-filter