节点在使用React Client App进行回调的回调后表达React OAuth传递访问令牌

用户名

我有一个节点服务器,可以使用oauth向第三方进行身份验证(就像堆栈溢出一样)。当第三方点击我的回调并授权请求并获得访问令牌和其他信息时,我想将该信息传递给我制作的React应用,以便React应用可以直接使用访问令牌进行REST调用来自提供商。

我是节点和节点的新手,但能够使节点服务器能够获取访问权限并刷新令牌信息。我是“服务”和服务React应用程序的新手。我一直在使用

app.use('/client', express.static(__dirname + '/client'));

来提供React应用,这在一定程度上发挥了作用。我目前所处的情况超出了范围,我想学习如何在回调授权后将oauth信息与我的react应用一起发送回去。我正在使用的流程在回调中授权该请求,然后重定向回/ client路由以呈现该应用程序,该应用程序无法将任何oauth信息传递给客户端。有什么方法可以在重定向之前设置标头以获取oauth信息,然后如何在react应用中获取该oauth信息?

我在这里发布是为了获取一些我应该阅读的途径和资源方面的建议,以及一些有关我当前状况的建议。我很想学习Express的更多知识,目前正在寻找用我需要的信息设置标题,然后将react app作为文件或其他内容提供的服务,我不确定。

感谢所有进阶!

里斯托·诺维克(Risto Novik)

我会尽力回答您的问题。因此,SPA(单页应用程序)和OAuth登录的问题在于,通过重定向传输数据的唯一方法是URL查询字符串。JWT(JSON Web令牌)将允许这样做,但是仅在移动原生SDK-s中受支持。Web解决方案,此处不使用弹出流:

对于Node.js,我建议使用Passport.js OAuth模块,登录流程为:

  1. / auth / google->重定向到Google登录页面的示例。
  2. 成功后,您将被重定向回回调URL / auth / google / callback
  3. 您还可以获取access_token,refresh_token,基本配置文件信息等。
  4. 没有使用会话,因此我们使用JWT并在服务器端生成令牌。
  5. 使用令牌重定向回应用程序:app.example.com?token=JASJKDk ..
  6. 在客户端,从查询字符串中提取令牌。

这只是您可能使用的一种可能的流程,您也可以使用会话/ cookie解决方案来代替JWT。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章