使用 Backbone Js 和 SLIM 框架进行用户身份验证
Posted
技术标签:
【中文标题】使用 Backbone Js 和 SLIM 框架进行用户身份验证【英文标题】:User Authentiation Using Backbonejs and SLIM Framework 【发布时间】:2015-02-05 17:33:29 【问题描述】:我正在尝试使用 Backbonejs 和 SLIM 框架开发应用程序。现在我想开发用户登录/注销功能。在这种情况下,我想在用户从一个页面导航到另一个页面时让 SESSION 在服务器中保持活动状态。以前我使用过另一个 php 框架和核心 PHP,并成功实现了用户身份验证。 SLIM 框架作为 API 工作。实际上我的问题是“如何使用来自 Backbonejs 的 API 的 HTTP 请求知道当前的 SESSION 是活跃的?”
对我来说看起来很乱。我阅读了几篇如下所示的 *** 帖子,但无法找到解决方案。
How to do authentication with a REST API right? (Browser + Native clients)
If REST applications are supposed to be stateless, how do you manage sessions?
How to use PHP sessions with REST client application ?
我希望你们中的任何人使用 Backbonejs 和 SLIM 框架作为 API 来实现用户身份验证。如果他/她用一些示例代码分享他/她的经验,那将对我有很大的帮助。
谢谢
【问题讨论】:
【参考方案1】:我不确定 Slim API。但是对于 Restful Web 服务,没有会话概念。
相反,您可以使用带有身份验证令牌的 http 标头令牌,并且此令牌可以保存在表中(例如用户表)。可以进行检查以确保每次请求到达服务器时令牌是否有效。注销时取消令牌。
Post Authentication,从登录操作的成功回调中可以触发一个自定义事件,该事件已经绑定加载成功页面。
EG:
在应用程序级别初始化。
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/
【讨论】:
【参考方案2】:我同意 Balaji 的观点,但他并不准确。 REST 有会话,但您必须将其保留在客户端。如果您想在会话中写入任何内容,则必须将其与响应正文一起发回,以便客户端可以处理和存储它。如果您想从会话中读取任何内容,则必须将其与请求一起发送,以便服务器可以处理它。
所以如果你想做访问控制,你应该将用户名和密码保存在客户端的内存中,并覆盖backbone.sync()
以每次发送auth headers。在授权之前的服务器端,您可能必须通过 memcached 使用 username+password -> identity+permissions
的缓存来验证每个请求。通过 SLIM,您需要提取标题,我认为这不会导致问题。 SLIM 没有内置的身份验证和授权支持,因为它只是一个 HTTP 库,因此您需要另一个工具来实现该部分。
【讨论】:
以上是关于使用 Backbone Js 和 SLIM 框架进行用户身份验证的主要内容,如果未能解决你的问题,请参考以下文章
Backbone & Slim PHP - Access-Control-Allow-Headers - 可以获取信息,不能发布吗?
Backbone UI 和 CMS 后端:涉足 Restful CRUD
通过 Angular JS $http.post 使用 slim 框架时出现 404 无效的 http 状态代码
html 上传Backbone Slim Framework http://www.ebizdesigner.com/item/52-backbonejs-mvc-app-tea-tree-part-