在backbone.js应用程序中管理身份验证(会话)和授权的最佳设计/架构实践是什么?

前端之家收集整理的这篇文章主要介绍了在backbone.js应用程序中管理身份验证(会话)和授权的最佳设计/架构实践是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在这里找不到很多东西.大多数示例应用程序只是不谈论安全性等.假设用户将使用休息的API调用进行身份验证.如何将应用程序的结构设计为照顾身份验证[也是授权].指向示例应用程序的指针会很棒.请在单页应用程序和正常应用程序中添加视图.
[我相信每一个观点都应该照顾它]

解决方法

几个月前遇到同样的问题,一个单一的应用程序消耗基于REST的api.在找到答案后,我想出的是使用HTTP现有的401和403错误.我的api返回这些错误.然后通过使用扩展错误处理模型来处理这些错误,并通过路由器 navigate功能将其路由到我的登录,捕获了异常.
var ErrorHandlerModel = Backbone.Model.extend({

    initialize: function(attributes,options) {
        options || (options = {});
        this.on("error",this.errorHandler);
        this.init && this.init(attributes,options);
    },errorHandler: function(model,error) {
        if (error.status == 401 || error.status == 403) {
          app.history.navigate('login',true);
        }
    }

});

事后看来,尽管我认为使用全局jquery ajaxError功能会更好一些.上面的代码片段基于类似的question posted here几个月前.

我还必须覆盖主板的默认提取行为,所以我可以用ogin触发一个错误,以捕获包含在api的json响应中的响应变量.

var Login = Backbone.Model.extend({  

    urlRoot: '/login',parse: function(resp,xhr) {
        if (resp.response == 'success') {
            app.history.navigate('dashboard',true);
        }
        else {
            this.trigger('loginError');     
        }
    return false;
    }
});

猜你在找的JavaScript相关文章