Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Api 使用Backbonejs和SLIM框架进行用户身份验证_Api_Rest_Session_Backbone.js_Slim - Fatal编程技术网

Api 使用Backbonejs和SLIM框架进行用户身份验证

Api 使用Backbonejs和SLIM框架进行用户身份验证,api,rest,session,backbone.js,slim,Api,Rest,Session,Backbone.js,Slim,我正在尝试使用Backbonejs和SLIM框架开发一个应用程序。现在我想开发用户登录/注销功能。在这种情况下,当用户从一个页面导航到另一个页面时,我希望在服务器中保持会话活动。之前,我使用了另一个PHP框架和核心PHP,并成功地实现了用户身份验证。SLIM框架作为API工作。实际上,我的问题是“如何使用Backbonejs对API的HTTP请求来知道当前会话是否处于活动状态?” 在我看来它很乱。我读了几篇类似下面这样的文章,但没有找到解决办法 我希望你们中的任何人都能使用Backbone

我正在尝试使用Backbonejs和SLIM框架开发一个应用程序。现在我想开发用户登录/注销功能。在这种情况下,当用户从一个页面导航到另一个页面时,我希望在服务器中保持会话活动。之前,我使用了另一个PHP框架和核心PHP,并成功地实现了用户身份验证。SLIM框架作为API工作。实际上,我的问题是“如何使用Backbonejs对API的HTTP请求来知道当前会话是否处于活动状态?”

在我看来它很乱。我读了几篇类似下面这样的文章,但没有找到解决办法

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


谢谢

我不确定是否使用Slim API。但是对于Restful web服务,没有会话概念

相反,您可以拥有一个http头令牌,该令牌携带在您的身份验证令牌周围,并且该令牌可以持久保存在表(例如用户表)中。可以进行检查,以确保每次请求到达服务器时令牌是否有效。注销时使令牌无效

认证后,从登录操作的成功回调中,您可以触发已绑定到加载成功页面的自定义事件

例如:

在应用程序级别进行初始化

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});
参考:
我同意巴拉吉的观点,但他并不准确。REST有一个会话,但您必须将它保持在客户端。如果要将任何内容写入会话,必须将其与响应正文一起发送回,以便客户端可以处理和存储它。如果要从会话中读取任何内容,则必须将其与请求一起发送,以便服务器可以处理它

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