首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJs & Tokens

AngularJs & Tokens
EN

Stack Overflow用户
提问于 2016-05-17 11:32:27
回答 1查看 57关注 0票数 2

我在JWT Auth中使用AngularJs。我已经做了一个api并对它进行了测试。

对于每个请求,api都期望得到一个令牌,对于每个响应,它都会返回一个令牌对象。但当我这样做的时候:

代码语言:javascript
复制
employeeAppModule.config([
        '$httpProvider',
        function ($httpProvider) {
            $httpProvider.interceptors.push(function () {
                var token, headers, $cookies;

                //inject cookies
                angular.injector(['ngCookies']).invoke(['$cookies', function(_$cookies_) {
                    $cookies = _$cookies_;
                }]);

                return {
                    request: function (request) {
                        token = $cookies.get('jwt-token');
                        headers = request.headers || (request.headers = {});

                        if(token != null && token != 'undefined') {
                            headers.Authorization = token;
                        }
                        return request;
                    },
                    response: function (response) {
                        if (typeof response.data.result === 'undefined') {
                            return response;
                        }

                        if(response.status && response.status.code === 401) {
                            alert('token wordt verwijderd');
                        }

                        if(response.data && response.data.result.token && response.data.result.token.length > 10) {
                            $cookies.put('jwt-token', 'Bearer ' + response.data.result.token);
                        }
                        return response;
                    }
                };
            });
        }]);

这不管用。如果我在请求/响应之间放置几个警告框,它就可以工作了。我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-17 11:40:03

Authorization变量上设置headers属性,然后返回request

代码语言:javascript
复制
request.headers = headers;
return request;

这应该能解决这个问题。

不过,有几件事:

  • 不要将Bearer放入cookie本身,只需将其添加到每个请求的标题中,这样就更优雅了。
  • 我不确定它是否是有意的,但是您真的不应该在每个请求上返回一个令牌对象。如果是故意的行为,那就是我的错!
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37274913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档