【问题标题】:How to integrate oauth for react front end and node back end?如何为反应前端和节点后端集成oauth?
【发布时间】:2019-04-19 10:08:42
【问题描述】:

我使用 React 作为前端。我使用react-google-loginreact-facebook-login 登录Google 和Facebook。

它在前端给了我accesstoken

我将这个 accesstoken 传递给后端(我正在使用带有 hapi 的 Node)。

但在后端,如何使用accesstoken 从 Google 或 Facebook 获取 userDetails 并传递刷新令牌以获取新的 accesstoken

更新:

OK google oauth2 流程分三步。

  1. 获取授权码
  2. 交换授权码以获取访问令牌
  3. 传递访问令牌以获取用户信息

当我解耦前端和后端时。在这三个步骤中,我应该在前端和后端做什么。 在安全方面?

【问题讨论】:

    标签: node.js reactjs oauth-2.0 hapijs


    【解决方案1】:

    当我解耦前端和后端时。在这三个步骤中,我应该在前端和后端做什么。在安全方面?

    在前端:
    您应该获取授权码并将授权码传递给后端。

    在后端:
    交换授权码 + 访问令牌/刷新令牌的秘密(秘密永远不会暴露给客户端)。
    使用访问令牌来消费像get user info 这样的端点,并将信息传回前端。

    这是推荐的授权码流程。

    如果您没有服务器,则可以执行隐式流,这意味着您没有秘密,因此没有刷新令牌。并且您直接在客户端中获取访问令牌 - 这不太安全。

    【讨论】:

    • 谢谢 Boaz 我完全按照你说的做了!!再次感谢您
    • 我在谷歌上完成了。我可以为 Facebook 执行相同的步骤吗?我正在使用 react-facebook-login 它没有返回授权码,而是给出了完整的对象。你能帮我吗?
    • Facebook 做的事情与经典的 OAuth 2.0 有点不同。他们推荐 Facebook Login 使用他们的 SDK 来获取短期访问令牌,这是隐式流。您可以在服务器中使用密码exchange him for long lived(将密码保留在后端)。或者做一些与谷歌非常相似的事情 - authorization code flow in facebbok
    • 以及这些包如何获取 userDetails,因为我没有将 client_secret 传递给这个组件 props 。我只传递 client_id。
    • 您有一个访问令牌,当您调用 Facebook Graph API 以获取用户详细信息时,您将其添加到请求中
    猜你喜欢
    • 2022-11-07
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 2021-10-22
    相关资源
    最近更新 更多