javascript - node express react oauth 在回调中与 react 客户端应用程序授权后传递访问 token

标签 javascript node.js express reactjs oauth

我有一个 Node 服务器,它使用 oauth 向第三方进行身份验证(就像堆栈溢出一样)。当第三方点击我的回调并且我授权请求并获取访问 token 和其他信息时,我想将此信息传递给我制作的 react 应用程序,然后 react 应用程序可以直接使用访问 token 进行 REST 调用来自 vendor 。

我是 React 和 Node 的新手,但我能够制作一个可以获取访问权限和刷新 token 信息的 Node 服务器。我是“服务”和服务 react 应用程序的新手。我一直在使用

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

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

我在这里发帖是为了获得一些关于我应该阅读的途径和资源的建议,也许还有一些针对我目前情况的建议。我很想了解更多关于 express 的信息,目前正在寻找用我需要的信息设置标题,然后将 React 应用程序作为文件或其他东西提供服务,我还不确定。

感谢所有先进的!

最佳答案

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

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

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

这只是您可能使用的一种可能的流程,除了 JWT,您还可以使用 session /cookie 解决方案。

关于javascript - node express react oauth 在回调中与 react 客户端应用程序授权后传递访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39056716/

相关文章:

Javascript在文本中放置逗号

javascript - Photoshop 脚本中将多个 PNG 放在模型上的文件名问题

mysql - 获取列数据并插入到另一列中给出的 id 的行中 - sql nodejs

javascript - 浏览 Node.js 服务器时出现 502(代理错误)

node.js - Nodejs Wit.ai - 将自定义操作分解为单独的模块

node.js - 经过身份验证的用户的 Sails.js 单个实例

node.js - 当我尝试从本地主机发布新产品时收到错误消息

javascript - 如何制作显示相同数据的两个输入字段?

javascript - 使用 jQuery 或 underscore.js 合并对象中多个数组的值

node.js - Homebridge 定制配件创建