Spring OAuth2 - 如何使用 /oauth/authenticate 端点?

Spring OAuth2 - how to use the /oauth/authenticate endpoint?

所以...我正在努力使用 Spring Boot OAuth2 来实现授权服务器。现在我收到 403 响应:

GET oauth/authorize?username=demo&password=demo&client_id=demo&response_type=token

看在上帝的份上,请求可以吗?我想从浏览器应用程序调用此端点,它应该 return 一个 access_token 和一个 refresh_token。为什么我需要为此提供 client_id?为此,我处于精神崩溃的边缘。您应该如何向此端点发送请求?

响应是:

{
  "timestamp": "2019-09-15T05:03:17.206+0000",
  "status": 403,
  "error": "Forbidden",
  "message": "Access Denied",
  "path": "/oauth/authorize"
}

编辑:

我的简化问题是:@EnableAuthorizationServer 是否有一个端点,并且它像我想象的那样工作?您提供用户名和密码,它 return 是 access_token 和 refresh_token。

ClientId 仅供用户访问服务器。所以首先创建一个服务器,然后尝试创建客户端:

在服务器中添加此代码: @Override public void configure(ClientDetailsServiceConfigurer clients) throws Exception { clients .inMemory() .withClient("ClientId") .secret("secret") .authorizedGrantTypes("authorization_code") .scopes("user_info") .autoApprove(true); }

客户端:在 spring 属性 中正确添加您的客户端 ID,您保存在服务器中

答案是肯定的终点是POST/oauth/token 带参数:

username -> YOUR_USERNAME
password -> YOUR_PASSWORD
grant_type -> password

clientId 和密码必须在授权中发送 header。