如何集成oauth以响应前端和节点后端?

时间:2018-11-16 08:37:31

标签: node.js reactjs oauth-2.0 hapijs

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

它使我accesstoken处于前端。

我将此accesstoken传递给了后端(我将Node和hapi一起使用)。

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

更新:

确定google oauth2流程分为三个步骤。

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

当我分离前端和后端时。在这三个步骤中,我应该在前端和后端执行的所有操作。 在安全方面?

1 个答案:

答案 0 :(得分:2)

  

当我分离前端和后端时。在这三个步骤中,我应该在前端和后端执行的所有操作。在安全方面?

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

在后端:
交换授权码+密钥以访问令牌/刷新令牌(密钥永远不会暴露给客户端)。
使用访问令牌消耗get user info之类的端点,并将信息传递回前端。

这是推荐的授权码流程。

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