Oauth2 流程/在前端使用重定向端点进行状态验证

问题描述 投票:0回答:1
我有一个关于 oauth2 流程的问题。我正在使用 python/fastapi,并且已经实现了 oauth2 流,其中重定向端点位于前端侧,因为无法从外部访问后端。流程看起来像这样

    FE 向 BE 发送登录请求
  1. BE,在 request.session 中生成状态并将请求重定向到身份提供商
  2. IDP 验证输入并将请求重定向到给定的重定向网址
  3. FE 接收授权码和状态并向 BE 发送授权请求
  4. BE 验证状态,问题就在这里,他收到新会话,砰,无法验证收到的输入。
  5. 访问令牌验证....
FE 使用 React js,只需从 IDP 接收代码和状态并将其转发。会出现什么问题呢?前端应该以不会丢失会话的方式处理请求,或者 request.session 可能不是一个好的选择(oauth2 lib 实现也是如此)。

我正在本地测试它,因此在不同域上重置会话不应该是这种情况。当重定向 url 在 BE 上时,它可以在没有重定向端点的情况下工作。

javascript python session oauth
1个回答
0
投票
对于任何正在寻找类似情况解决方案的人。我没有找到解决问题的完美解决方案,我必须更改重定向 url 端点的工作方式,之前它直接将请求重定向到身份提供程序服务,我将其更改为简单返回 200 并将 url 重定向为字符串,哪个前端在 href 中设置锚点。之后,它不会遇到 CORS 问题,因为浏览器不会检查它。

© www.soinside.com 2019 - 2024. All rights reserved.