【发布时间】:2020-09-18 15:15:21
【问题描述】:
我正在尝试使用 Java spring rest Api 调用需要授权的第 3 方端点,因此我需要执行授权代码授予流程。
我了解我需要首先获取代码然后将代码交换为 JWT 并最后使用 JWT 的流程能够进行安全呼叫。
对我来说没有意义的是,当我仅使用没有 UI 的后端 rest api 时,我应该如何设置重定向 URI。通常,用户会被重定向到登录页面,在那里他们可以使用用户名/密码或第 3 方帐户(google/facebook ...)登录
经过大量谷歌搜索,所有搜索都以指南结束,以保护我自己的端点,而不是从我的 Spring Boot 服务访问安全端点
编辑:值得一提的是,在@Partha 发表评论后,我只使用了一个没有任何前端(或 MVC)的后端:
首先,我添加了一个新的登录端点,当通过浏览器访问时(这不适用于 swagger/postman),它应该将用户重定向到授权服务器:
@GetMapping
public void login(HttpServletResponse httpServletResponse) {
httpServletResponse.setHeader("Location", getAuthServerEndpoint());
httpServletResponse.setStatus(302);
}
我在哪里构建了端点以获取所需的所有数据(client_id、redirect_uri...),所以它看起来像
现在它会将我发送到身份验证服务器的登录页面,在我登录后,我希望它会将我重定向到 localhost/token(这是一个 get 请求,它将检索代码并执行一个 post 请求以获取 jwt并保存它)但是相反,我收到了无效的重定向 uri,我真的不确定这是我的实现还是服务器的问题
EDIT2:我犯了一个愚蠢的错误,没有在身份验证服务器中添加http://localhost:8080/token 作为重定向网址,因为我认为我不需要
【问题讨论】:
标签: java spring jwt authorization