【发布时间】:2021-09-27 13:33:56
【问题描述】:
我已经阅读了几十篇文章并在 Github 上检查了很多关于授权码授权类型的 OAuth2 的项目,但我仍然认为我对此有一些错误。
我有以下场景展示案例:
前端 SPA 应用(React)
-
在此应用程序中,用户将使用她的 github 凭据登录,我将列出他的存储库和来自 github 的一些其他信息。
-
后端Spring Boot:会调用github api并返回响应给fe客户端
我的流程:
1-) 用户点击 github 按钮登录并重定向到 github:https://github.com/login/oauth/authorize?response_type=code&redirect_uri=http:localhost:8080/oauth/callback/github
2-) 用户授权客户端并使用代码重定向到 BE Spring Boot 应用程序。使用此代码,它与访问令牌交换
3-) 在本节中,BE Spring Boot 获取访问令牌并将其发送给 FE React 应用程序
4-) 用于与 github 交互,例如列出存储库和其他操作 FE 将访问令牌发送给 BE,并使用令牌调用 github 并将响应返回给 FE 应用程序
对我来说这是流程,但我对第 3 步和第 4 步有疑问。 FE 需要将访问令牌存储在 cookie 或本地阶段之类的地方,因此它可能不安全。如果我不向 FE 发送访问令牌,BE 如何知道要进行调用的访问令牌,所以此时 Be 必须是无状态的。
我错过了什么?
谢谢。
【问题讨论】:
标签: spring-boot security oauth-2.0 jwt openid-connect