在访问由 Azure B2C 保护的 Spring Boot 服务时发现 302

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

我不确定为什么会收到 302 Found 但没有响应正文。当我尝试使用 Postman 访问由 Azure b2c 保护的 spring-boot 服务时,我正确传递了从此函数生成的访问令牌

@GetMapping("/token")
    public String getAccessToken(Authentication authentication) {
        if (authentication instanceof OAuth2AuthenticationToken oauthToken) {
            String clientRegistrationId = oauthToken.getAuthorizedClientRegistrationId();
            OAuth2AuthorizedClient client = authorizedClientService.loadAuthorizedClient(
                    clientRegistrationId, oauthToken.getName());

            if (client != null) {
                OAuth2AccessToken accessToken = client.getAccessToken();
                return "Access Token: " + accessToken.getTokenValue();
            }
        }
        return "Access token not found!";
    }

使用 jwt.io 解码此令牌,获取此

"iss": "https://learningakash.b2clogin.com/a593b6b3-b245-4e93-9213-e5e9c70a25ec/v2.0/",
  "exp": 1728976728,
  "nbf": 1728973128,
  "sub": "e7433b04-2a76-44d2-bc58-0c6844068546",
  "given_name": "Piggy",
  "family_name": "Account",
  "tfp": "B2C_1_signupsignin",
  "nonce": "pkAg9R-R2x6RodQUfbT8LZzJd6fzm9-ulN9xS-OFvoY",
  "azp": "77a7047b-ec7f-4d87-bad7-d2d145425a57",
  "ver": "1.0",
  "iat": 1728973128
}

奇怪的是 JWT.io 显示这样的无效签名,

enter image description here

我在这里做错了什么。

spring-boot azure azure-active-directory postman azure-ad-b2c
1个回答
0
投票

我尝试将访问令牌添加到 jwt.io 并得到相同的错误无效签名,因为我在RS256算法中使用了访问令牌。

作为参考,请检查此SO答案

JWT.io 不支持

RS256

最初,我在使用

RS256
时也遇到了同样的错误,但是当我更改为
HS265
时,它对我有用。

enter image description here enter image description here

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