如何使用单个端点调用在 spring-authorization-server 中获取授权码?

问题描述 投票:0回答:1

背景

我正在使用以下内容构建 OAuth2 授权服务器

目标

通过端点调用获取授权码,无需重定向

详情

所以我已经按照本指南配置了 Spring 授权服务器。 问题是,为了获取授权代码,我需要使用浏览器,转到某个 URL 并在那里输入我的登录名和密码,然后我将代码作为重定向 URL 的一部分获取。

http://127.0.0.1:8080/authorized?code=3itgI0EhMS_gSFAEJqugIWDOMe1GPCgsWe47TTk40MxMYqq4qE3GLRSL2SqWeSUuhxPrZZgYnNXkCrbt96ycq6ln3K4K34u06VuuL2xia8N3w4xM3k0MCNeYqpBUOXAa

我想跳过 UI 部分,并以某种方式使用 Postman 或 Java HTTP 客户端类之类的东西来获取此代码。

我该怎么办?

spring spring-boot oauth-2.0 spring-security-oauth2 spring-oauth2
1个回答
0
投票

如果您想使用授权码授予

,您必须使用浏览器

应该是用于获取授权码的重定向URI。

     +----------+
     | Resource |
     |   Owner  |
     |          |
     +----------+
          ^
          |
         (B)
     +----|-----+          Client Identifier      +---------------+
     |         -+----(A)-- & Redirection URI ---->|               |
     |  User-   |                                 | Authorization |
     |  Agent  -+----(B)-- User authenticates --->|     Server    |
     |          |                                 |               |
     |         -+----(C)-- Authorization Code ---<|               |
     +-|----|---+                                 +---------------+
       |    |                                         ^      v
      (A)  (C)                                        |      |
       |    |                                         |      |
       ^    v                                         |      |
     +---------+                                      |      |
     |         |>---(D)-- Authorization Code ---------'      |
     |  Client |          & Redirection URI                  |
     |         |                                             |
     |         |<---(E)----- Access Token -------------------'
     +---------+       (w/ Optional Refresh Token)

如果您不想使用浏览器,可以使用客户端凭据流程。 但它是应用程序令牌而不是用户令牌。

     +---------+                                  +---------------+
     |         |                                  |               |
     |         |>--(A)- Client Authentication --->| Authorization |
     | Client  |                                  |     Server    |
     |         |<--(B)---- Access Token ---------<|               |
     |         |                                  |               |
     +---------+                                  +---------------+

这是 Postman

来自 Spotify 的客户凭证示例
© www.soinside.com 2019 - 2024. All rights reserved.