Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用JWT在angular中从中心域登录到子域?_Node.js_Angular_Authentication_Jwt_Single Sign On - Fatal编程技术网

Node.js 如何使用JWT在angular中从中心域登录到子域?

Node.js 如何使用JWT在angular中从中心域登录到子域?,node.js,angular,authentication,jwt,single-sign-on,Node.js,Angular,Authentication,Jwt,Single Sign On,我想实现一个功能,其中有一个中心登录站点,比如:,当用户在此页面中输入登录凭据并从下拉列表中选择用户要登录的子域时,用户会像这样登录到该子域https://abc.example.com. 我使用meanstack和jwt令牌进行身份验证。JWT实现以标准方式应用,首先:将请求发送到“/authenticate”,然后返回令牌,令牌将存储在浏览器本地存储中。 我已经成功地完成了一个站点身份验证,即从该域登录并记录用户,但现在我想实现如下流程=> 登录页面,共: 用户可以从下拉列表中选择要登录的

我想实现一个功能,其中有一个中心登录站点,比如:,当用户在此页面中输入登录凭据并从下拉列表中选择用户要登录的子域时,用户会像这样登录到该子域https://abc.example.com.

我使用meanstack和jwt令牌进行身份验证。JWT实现以标准方式应用,首先:将请求发送到“/authenticate”,然后返回令牌,令牌将存储在浏览器本地存储中。

我已经成功地完成了一个站点身份验证,即从该域登录并记录用户,但现在我想实现如下流程=>

登录页面,共:

  • 用户可以从下拉列表中选择要登录的子域
  • 用户输入登录凭据后(所有子域的这些凭据可以不同,也可以相同)
  • 用户被重定向到该子域的仪表板页面(JWT令牌存储在所选子域的本地存储中)
  • 上面是我想要实现的流程,但如果其他流程达到相同的结果,则可以对其进行更改

    我搜索了有关此主题的问题和博客:
    我已经经历了一段时间。。。但这并不是我想要的;因为SSO就像在一个子域中登录,它在其他任何地方都会被登录。。。但我想根据用户选择从单个登录页面登录到子域的仪表板页面。

    我是如何想到实施这个(不起作用的):
    我将首先使用参数
    {用户名:“alice”,密码:*****,子域URL:https://abc.example.com“}

    我的nodejs后端将进行身份验证并返回JWT令牌。现在我将重定向到该子域()并将此令牌从发送到,它将以某种方式存储在该子域的()localstorage中。在本地存储之后,我可以轻松地完成其他工作


    那么如何实现这一点呢?上述方法是否可行;如果那样的话,如何正确的做呢?实现这种体系结构的最佳方式是什么?任何帮助都会很好,谢谢

    我建议您首先从发送/验证请求。 它将由nodejs后端验证,然后生成JWT令牌并重定向到包括令牌的新子域

    http.get('*',function(req,res){  
        res.redirect('https://abc.example.com?token='+JWTtoken);
    })
    

    您可以从子域获取令牌并将其存储在本地存储器中。此外,您可以使用此令牌进行api身份验证。

    我建议您首先从发送/验证请求。 它将由nodejs后端验证,然后生成JWT令牌并重定向到包括令牌的新子域

    http.get('*',function(req,res){  
        res.redirect('https://abc.example.com?token='+JWTtoken);
    })
    
    您可以从子域获取令牌并将其存储在本地存储器中。此外,您可以使用此令牌进行api身份验证