我正在尝试通过Keycloak的REST API进行交互。我拥有主域、默认管理员用户和一个测试域。首先,我为管理员帐户和测试域获取访问令牌:
let data = {
grant_type : 'password',
client_id : 'test-realm',
username : 'admin',
password : 'admin'
};
let headers = {
'Content-Type': 'application/x-www-form-urlencoded'
};
axios.post(
'https://someurl.com:8080/auth/realms/master/protocol/openid-connect/token',
qs.stringify(data),
headers
)
那个可以正常工作。然后我尝试调用创建用户(或进行其他任何操作),但是我收到了401未经授权的错误:
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': `Bearer ${accessToken}`
};
data = {
rep: {
email: "test@email.com",
username: "test@email.com"
},
path: 'test-realm'
};
axios.post('https://someurl.com:8080/auth/admin/realms/test-realm/users',
qs.stringify(data),
headers
)
那不是正确的包含令牌的方式吗?访问令牌是您用于验证其他 API 调用的令牌吗?管理员帐户的令牌不应该用于验证对主域中其他客户端的调用吗?这是否是我必须在管理员控制台中更改主域中的某些设置?任何帮助都将不胜感激。