为/ oauth / token配置基本身份验证

时间:2020-07-31 17:38:07

标签: oauth-2.0 spring-cloud spring-security-oauth2 spring-oauth2

我想使用Spring Cloud为OAuth2实现令牌刷新。

我可以通过使用以下有效负载向/oauth/token发送请求来创建令牌:

curl --location --request POST 'http://localhost:8080/engine/oauth/token' \
--header 'Authorization: Basic YWRtaW46cXdlcnR5' \
--form 'username=admin' \
--form 'password=qwerty' \
--form 'grant_type=password' \
--form 'scope=read'

但是对于刷新令牌,使用相同的路径/oauth/token。我还需要将用户名和密码发送到标题'Authorization: Basic YWRtaW46cXdlcnR5'中,我没有它们。我可以使用带有此有效负载的刷新令牌来创建新令牌:

curl --location --request POST 'http://localhost:8080/engine/oauth/token' \
--header 'Authorization: Basic YWRtaW46cXdlcnR5' \
--form 'grant_type=refresh_token' \
--form 'scope=read' \
--form 'refresh_token=....'

您知道如何解决此问题吗?

Github code

1 个答案:

答案 0 :(得分:1)

刷新令牌授予消息不需要授权标头。尝试删除它,然后将client_id作为表单参数发送。您可能还需要配置offline_access范围,才能刷新令牌。

虽然我记得最后一次,但ROPC不应支持令牌刷新,尽管对于所有提供程序而言,行为可能并不相同。

最后,请注意,如果您有更好的选择,则不建议真正使用ROPG。 This post总结了问题。

如果您可以总结使用情况,我也许可以推荐一个更好的选择。