oauth2.0 后端的OIDC,从前端重定向

6l7fqoea  于 2022-11-21  发布在  其他
关注(0)|答案(1)|浏览(217)

我正在实现一个与GitLab集成的小工具作为身份提供者。React在前端,Quarkus在后端。
我已经将我的后端配置为web_app,这部分工作正常。进入localhost:8080/auth(后端)后,Quarkus将我重定向到GitLab,登录后,我被重定向回后端,后端以JSON形式返回UserInfo
现在我想添加基于会话(cookie)的前端部分。根据文档,我设置了quarkus.oidc.authentication.java-script-auto-redirect=false,我的前端接收到499代码,然后使用window.location.assign浏览器打开后端-〉GitLab -〉login -〉UserInfo作为JSON。最后,流在后端停止,我无法返回前端。
1.我的流程是否正确?是否有可能做到这一点(后端的OIDC和前端的会话)?
1.我如何 Package window.location.assign("http://localhost:8080/auth")来保存前端上下文(我需要使用这个,否则重定向到GitLab将在CORS失败)?

q35jwt9p

q35jwt9p1#

经过一些研究,尝试和失败,实施是准备好了。
流量:

  • 前端显示了使用GitLab登录的按钮
  • 按钮是一个指向后端的链接,带有额外的HTTP标头'X-Requested-With': 'JavaScript'
  • 如果用户未通过身份验证,后端返回499代码,前端使用window.location.assign重定向到GitLab登录页面
  • GitLab重定向到后端(令牌存储在那里)
  • 后端重定向到前端(此时,后端具有用户令牌,前端具有来自后端的会话cookie)

前端和后端都在同一个域上工作。
实施-https://gitlab.com/hakkie-it/time-tracker/time-tracker

相关问题