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

时间:2019-09-15 05:09:24

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

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

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

出于对上帝的爱,请求可以吗?我想从浏览器应用程序中调用此终结点,它应该返回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随附一个端点,并且按我的想象它可以工作吗?您提供用户名和密码,然后返回access_token和refresh_token。

2 个答案:

答案 0 :(得分:2)

答案是肯定的,端点是POST / oauth / token 带有参数:

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

clientId和密钥必须在Authorization标头中发送。

答案 1 :(得分:1)

ClientId仅用于用户访问服务器。因此,首先创建服务器,然后尝试创建客户端:

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

Client:在spring属性中正确添加您在服务器中保留的客户端ID enter image description here