用户认证使用Backbonejs和SLIM框架

我正在尝试使用Backbonejs和SLIM框架开发应用程序。 现在我想开发用户登录/注销功能。 在这种情况下,当用户从一个页面导航到另一个页面时,我想让SESSION保持在服务器中。 以前我曾经工作过另一个PHP框架和核心PHP,并成功实现了用户认证。 SLIM框架作为API工作。 其实我的问题是“如何知道当前的SESSION是否使用来自Backbonejs的API向HTTP请求发送?”

它看起来很乱。 我读了几个像下面这样的stackoverflow后,但无法找到解决方案。

如何使用REST API进行身份验证? (浏览器+本机客户端)

如果REST应用程序应该是无状态的,那么您如何管理会话?

如何在REST客户端应用程序中使用PHP会话?

我希望你们中的任何一个人都可以使用Backbonejs和SLIM框架作为API来实现用户认证。如果他/她分享他/她的一些示例代码的经验,那将是一个很大的帮助。

谢谢


我不确定Slim API。 但对于Restful Web服务,没有会话概念。

相反,您可以拥有一个携带验证令牌的http头令牌,并且该令牌可以保存在表(例如用户表)中。 可以进行检查以确保每次请求到达服务器时令牌有效。 在注销时取消标记。

发布身份验证,从登录操作的成功回调中,您可以触发已经绑定的自定义事件来加载成功页面。

例如:

Intialise在应用程序级别。

var controller = _.extend({}, Backbone.Events);
controller.on("myapp:dashboard",function() {
  //your dashboard data fetch logic.
  //create instance of the view and pass fetched data.
});

在登录成功处理程序(回调)中进行以下调用:

Delegates to the custom controller.
controller.trigger("myapp:dashboard");

Changes the url to the correct location.
myAppRouter.navigate("tourl",{trigger:false});

参考:http://lostechies.com/derickbailey/2012/04/03/revisiting-the-backbone-event-aggregator-lessons-learned/


我同意巴拉吉,但他不准确。 REST有会话,但您必须将其保留在客户端。 如果您想要将任何内容写入会话中,您必须将其发送回响应主体,以便客户端可以处理并存储它。 如果你想从会话中读取任何东西,你必须发送请求,所以服务器可以处理它。

因此,如果您想进行访问控制,您应该将用户名和密码保存在客户端的内存中,并且每次都重写backbone.sync()以发送auth头文件。 在授权之前的服务器端,您必须通过memcached使用{username+password} -> {identity+permissions}缓存来验证每个请求。 通过SLIM你需要提取标题,我不认为这会导致问题。 SLIM没有内置的认证和授权支持,因为它只是一个HTTP lib,因此您需要另一个工具来实现该部分。

链接地址: http://www.djcxy.com/p/41155.html

上一篇: User Authentiation Using Backbonejs and SLIM Framework

下一篇: ASP.NET WebApi 2 get all active sessions (users) in the server