AngularJs重定向URL未将授权标头传递给服务器

时间:2016-03-12 16:26:49

标签: angularjs node.js authentication typescript

我正在开发一个AngularJs项目,我对网络很新。我想要实现的是简单的登录。我已经在服务器端(nodejs)以及客户端实现了令牌基础身份验证。

一切似乎都很棒。除非我尝试

  

此。$ window.location.href

当我点击登录时,为了测试我的身份验证是否正常工作,我已将$ http.get调用到授权的终点,它可以完美地运行。然后我调用nodejs(serve)来为我提供给定端点上的页面,该端点需要授权令牌头。但它没有发送。

  public loginClick = () => {
        this.authService.login(this.user).then(msg => {
            console.log("success");
            this.$http.get(Config.apiEndpoint().url + '/memberinfo').then(result => { 

                console.log(result.data); //<== this works
                var landingUrl = "http://" + this.$window.location.host + "/dashboard/";
                this.$window.location.href = landingUrl; //<== this does not works
            });

        }, errMsg => {
            console.log("failes");
        });

    }

nodejs代码

app.get('/', moduleRoutes.root);
app.get('/dashboard/', moduleRoutes.root);

export function root(req: express.Request, res: express.Response) {
    if (authorization.isAuthorized(req, res)) {
        res.sendfile('./public/views/index.html');
    } else {
        res.sendfile('./public/views/login.html');
    }
};

1 个答案:

答案 0 :(得分:-1)

你应该使用这样的$ location:

 public loginClick = () => {
        this.authService.login(this.user).then(msg => {
            console.log("success");
            this.$http.get(Config.apiEndpoint().url + '/memberinfo').then(result => { 

                console.log(result.data);
                $location.path('/dashboard');
            });

        }, errMsg => {
            console.log("failes");
        });

    }

谢谢&amp;干杯