【问题标题】:node express react oauth pass access token after athorization in callback with react client app节点快递在与反应客户端应用程序的回调中进行授权后反应oauth传递访问令牌
【发布时间】:2016-12-27 15:47:39
【问题描述】:

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

我是 react 和 node 的新手,但我能够制作一个可以获取访问和刷新令牌信息的节点服务器。我是“服务”和服务应用程序的新手。我一直在使用

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

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

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

感谢所有高级人员!

【问题讨论】:

    标签: javascript node.js express reactjs oauth


    【解决方案1】:

    我会尽力回答你的问题。因此,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. 没有使用会话,因此我们使用 JWT 并在服务器端生成令牌。
    5. 使用令牌重定向回应用程序:app.example.com?token=JASJKDk..
    6. 在客户端从查询字符串中提取令牌。

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

    【讨论】:

    • 非常感谢!这就说得通了。所以我会让我的节点服务器处理 /auth/google 和 /auth/google/callback 路由并使用 JWT 对 access_token、refresh_token 进行编码以存储在 url 中以传递回我的客户端?所以流程可能是这样的: 1.点击一个按钮登录谷歌。 GET 是否从节点获取 google 登录 url 将它获得的 url 重定向到 2.login 到 google -> 请求回调到节点并返回 access_token、refresh_token 等 3.将此信息的 JWT 附加到 url 并返回客户端url 上的应用程序 4.decode jwt in client use token for ajax
    • 其实你只需要JWT,不需要传回访问令牌,刷新令牌,至少我想你在客户端不需要这些,只在服务器端?
    • 对于这个用例,我计划将访问令牌传递给客户端以进行一些休息调用。像 JWT 一样将 access_token 放在 URL 上会不会不安全?我想确认这是使用 JWT 的原因
    • 我不会向客户端公开访问令牌,是的,通过 JWT 使用调用。
    猜你喜欢
    • 2021-12-15
    • 1970-01-01
    • 2021-01-05
    • 2020-03-25
    • 1970-01-01
    • 2015-03-13
    • 1970-01-01
    • 2019-06-27
    • 2017-10-18
    相关资源
    最近更新 更多