如何通过SSO将头部变量传递给我的angular 2应用程序?

时间:2017-05-02 00:52:51

标签: javascript node.js angular http-headers single-sign-on

我是Angular 2 + NodeJS的新手。我来自.NET。在.NET中,我知道您只需获取请求对象并将服务器变量拉出,但在角度2中,您似乎需要获取请求并将标头变量拉出来。

我的公司有自己的SSO,我需要在进入我的应用程序之前获取它添加的标头变量。

如何获取传递给我的应用程序的标头变量? 有没有一种标准的方法可以在Angular 2中获得它?

当我试图自己研究时,我总是得到很多"设置标题"情况

2 个答案:

答案 0 :(得分:0)

我正在考虑为您提供替代解决方案。请参阅我的图表。enter image description here

由于您提到了.NET,请在此处使用MVC。 https://www.asp.net/mvc 在控制器中,您可以执行以下操作:

- (void)viewWillAppear:(BOOL)animated
{
    [self.player play];
}

在您的视图SsoMiddleware.cshtml中,添加Javascript:

    public ActionResult SsoMiddleware()
    {
        string[] keys = Request.Headers.AllKeys;
        string authString = "";
        foreach (var key in keys)
        {
            if (key == "SSO Authentication String")
                authString = Request.Headers[key];
        }

        return View(authString);
    }

答案 1 :(得分:0)

您无法直接从客户端获取标题。

您可以做的是在您的应用程序中创建一个路径,该路径仅从请求中获取标头并将其从服务器传回客户端,假设您的应用程序在您拥有的任何页面上都有标题。

    app.get('/getVariable', function (req, res) {
  if (req.headers && req.headers.variablename) {
    res.status(200);
    res.send({
      name: req.headers.variablename
    });
  } else {
    res.status(404);
    res.send({
      status: 404,
      message: 'Headers not found'
    })
  }
})