Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.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
Javascript 使用JWT使用AngularJS、socket.io和node.js登录OpenID(steam)_Javascript_Angularjs_Node.js_Sockets - Fatal编程技术网

Javascript 使用JWT使用AngularJS、socket.io和node.js登录OpenID(steam)

Javascript 使用JWT使用AngularJS、socket.io和node.js登录OpenID(steam),javascript,angularjs,node.js,sockets,Javascript,Angularjs,Node.js,Sockets,我想知道在我的AngularJS应用程序中使用OpenID登录的安全方法是什么,后端是Node.js,实时是socket.io 问题是OpenID强制我使用一个新窗口进行重定向,所以我的设置是: Angularjs使用按钮渲染视图。(这仍然是开放的) 该按钮打开一个新窗口并加载我的后端/auth/openid/ 在这里,我设置了afterlogin url并重定向到openid站点 openid站点重定向到我的afterlogin后端 /auth/afteropenid/其中我处理用户数据并创建

我想知道在我的AngularJS应用程序中使用OpenID登录的安全方法是什么,后端是Node.js,实时是socket.io

问题是OpenID强制我使用一个新窗口进行重定向,所以我的设置是:

  • Angularjs使用按钮渲染视图。(这仍然是开放的)
  • 该按钮打开一个新窗口并加载我的后端/auth/openid/ 在这里,我设置了afterlogin url并重定向到openid站点
  • openid站点重定向到我的afterlogin后端 /auth/afteropenid/其中我处理用户数据并创建一个
    JsonWebToken
  • 我的问题是,我真的不知道什么是最好的方式继续下去。 我得把JWT送到AngularJS

    我看到的一种方法是将查询传递给AngularJS,在这里我可以在同一个窗口angular>openidsite>angular(在querystring中使用令牌)中执行所有操作。我将配置AngularJS来处理路由并使用令牌。我不知道这样有多安全,把JWT放在查询字符串中似乎是个坏主意

    我看到的另一种方式是使用socket.io,我的应用程序已经使用了它,我不包括它只是为了openID登录

  • 当我打开新窗口时,我会输入打开的套接字的ID,
    /auth/openid?socketID=XXXXXX
  • 然后,在openID站点重定向回后端之后, /auth/afteropenid?socketID=XXXXXX,我创建JWT并发送它 使用socket.io打开AngularJS开放式套接字
  • 在类似的问题中,我看到有一种方法可以做到这一点,即使用令牌设置cookie,然后重定向到angularJS

    我认为我的方法可以工作,重定向更少,但我对这一点还不熟悉,也许我没有考虑所有问题,我不知道如何利用这一点,因为服务器只使用套接字传递用户信息。需要注意的是,原来的angularJS窗口应该保持打开状态,但这在我的情况下是可以接受的