✅已解决 | java标准协议认证,根据code获取AccessToken报400错误

问题描述

OIDC登录成功回调,得到code,根据code获取token的时候报错
java.io.IOException: Unexpected code Response{protocol=http/1.1, code=400, message=Bad Request, url=https://dxs-new.u2.hep.com.cn/oidc/token}
{“error”:“invalid_grant”,“error_description”:“grant request is invalid”}

重现步骤

附加信息

  • Version:

1 . AuthenticationClient初始化


2. 调用
authenticationClient.getAccessTokenByCode(code).execute()
3.根据api使用postman测试结果一样

  • Platform:

window 10 64bit

您好,请确认下 getAccessTokenByCode 这一步传的 RedirectUri 是否和 buildAuthorizeUrl 时是一样的。
可以提供下使用的 SDK 的版本吗?

sdk版本4.3.44
buildAuthorizeUrl 我没有调用这个方法,使用的前台的AuthingSSO 对象获取的,前后台初始化的时候传递RedirectUrl是一样的
前台
image

后台配置

您好:
请将后台配置中的「#」号去掉再试一下,与前台保持一致。
OIDC 规范也会要求 URL 中不能含有 # 号哈。

我这有2个测试地址,我刚刚改了一下不从调用js的sdk,登录url和后续的操作都在后台处理了,但是调用sdk用code获取token还是报这个错,我就用httpclient请求成功了,是不是和okhttp有关系,版本用的4.8.0

一次请求结果

应该不会跟 httpClient 有关,我们用 SDK 测试是可以的。
方便加微信或者飞书吗(18310641137),远程看一下更快解决问题。

好的,收到,已添加