所以...我正在努力使用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。
答案 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);
}