博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
angularjs的config和interceptor - session注入
阅读量:6836 次
发布时间:2019-06-26

本文共 2373 字,大约阅读时间需要 7 分钟。

config

这个要从config的正确使用说起,也许你想在config某个provider的时候注入$rootscope, 但是这是不允许的,我们细看下面的特性

213419-20170614191552400-99753053.png

session注入

每个请求自带sessionid,要实现这种功能就要用到,而不是用config配置ng-resource往里面添加参数 - config是在服务加载前提供配置参数个性化服务实例

angular.module("secu.services")    .factory('HttpInterceptor', ['$q', '$state',        function($q, $state) {            return {                request: function(config) {                    // config.headers['x-session-token'] = localStorage.getItem('sessionid');                    if (localStorage.getItem('sessionid')) {                        //1. post data                        // config.data=config.data||{};                        // config.data['session_id'] = localStorage.getItem('sessionid');                                                //2. get parameters                        config.params=config.params||{};                        config.params['session_id'] = localStorage.getItem('sessionid');                    }                    // console.log('config: ',config);                    return config;                },                requestError: function(err) {                    return $q.reject(err);                },                response: function(res) {                    if (res.data && res.data.code) {                        switch (res.data.code) {                            case '000':                                return res                            case '100':                                alert(res.data.msg)                                return res                            case '200':                                console.log(res.data.msg)                                $state.go('login')                                break                        }                    }                    return res                },                responseError: function(err) {                    if (-1 === err.status) {                        // 远程服务器无响应                    } else if (500 === err.status) {                        // 处理各类自定义错误                    } else if (501 === err.status) {                        // ...                    }                    return $q.reject(err);                }            };        }    ])    .config(['$httpProvider',        function($httpProvider) {            $httpProvider.interceptors.push('HttpInterceptor');        }    ])

x-session-token in header

现在多数网站都是用token作为认证,而非cookiebase的sessionid

转载地址:http://nhqkl.baihongyu.com/

你可能感兴趣的文章
【安全牛学习笔记】手动漏洞挖掘(三)
查看>>
硬链接和软链接使用,以及区别
查看>>
history的详解与使用
查看>>
随机数
查看>>
【入门须知】学DIV CSS技术如何入门?
查看>>
Bullmind在线读书笔记软件
查看>>
wince 6.0 串口 读取 readfile 超时问题
查看>>
代码片段
查看>>
单例模式
查看>>
awk用法(三)
查看>>
谷歌深度学习公开课任务 5: Word2Vec&CBOW
查看>>
让Python不在mac的dock上显示火箭图标
查看>>
Oracle 数据库EM访问多个Instance
查看>>
理解 Delphi 的类(十) - 深入方法[28] - 递归函数实例: 搜索当前目录下的所有嵌套目录...
查看>>
前端纪实
查看>>
学 Win32 汇编[12]: PTR、OFFSET、ADDR、THIS
查看>>
WinAPI: GetLocalTime、SetLocalTime、SetSystemTime - 获取与设置系统时间
查看>>
关于 Delphi 中流的使用(6) 用流读写结构化文件
查看>>
复杂的结构化存取(一)
查看>>
web前端性能优化
查看>>