【问题标题】:OAuth2: How to pass session data to the front end?OAuth2:如何将会话数据传递到前端?
【发布时间】:2021-03-07 18:29:46
【问题描述】:

在我的 OAuth 流程中,我使用的是授权码授权类型。

  1. 前端 (React.js) 应用程序指向 OAuth 服务器的登录和范围授权页面
  2. Express.js 客户端应用发生重定向
  3. 客户端应用接收授权码并进行令牌交换。

我被困在这一点上。我已将用户和令牌数据保存到数据库中。但是我无法在安全地传递用户会话的同时重定向回前端(React.js)应用程序:

  1. Cookie 不能跨域传递
  2. 查询字符串可用,但会在服务器日志和浏览器历史记录中捕获。
  3. 重定向是 GET 请求,因此我无权访问 POST 请求正文。

在 OAuth 流程之后,如何安全地将会话数据传递到前端?我怀疑我的身份验证流程在一处或多处有误。

【问题讨论】:

    标签: node.js authentication oauth-2.0 backend


    【解决方案1】:

    听起来您可以通过在 ReactJS 应用程序中使用客户端流程来简化:

    • 登录使用授权码流 (PKCE)
    • SPA 使用 OIDC 客户端库
    • SPA 接收访问令牌,并可以使用它进行跨域 API 调用

    很难看出您的 ExpressJS 客户端应用程序带来了什么价值 - 感觉就像增加了不必要的复杂性。

    我的资源

    这里有一些可能有用的注释。 SPA 代码比必须在前端和后端之间切换以处理安全处理的旧解决方案要简单得多:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多