node.js - 如何通过 keycloak 服务帐户登录?
问题描述
我不知道如何准备 POST 命令以使用服务帐户访问 keycloak。
我正在使用 nodejs 访问干净的 keycloak 4.8.1 服务器并尝试了一些 POST 配置,但无法通过服务帐户成功登录。
我很难尝试通过服务帐户简单地登录到客户。我尝试了一些配置,但从未成功登录。我尝试的最后一个代码是这样的:
function serviceAccountAuthenticate (client) {
return function login (realmName, secret) {
const clientSecret = `procempa-admin:${secret}`;
const basicToken = `Basic: ${btoa(clientSecret)}`;
return new Promise((resolve, reject) => {
const req = {
form: {'grant_type': 'client_credentials'},
authorization: basicToken,
'Content-Type': 'application/x-www-form-urlencoded',
};
const url = `${client.baseUrl}/realms/${realmName}/protocol/openid-connect/token`;
request.post(url, req, (err, resp, body) => {
if (err) {
return reject(err);
}
// Check that the status cod
if (resp.statusCode !== 200) {
return reject(body);
}
return resolve(body);
});
});
};
}
结果是这样的悲伤:
{ form: { grant_type: 'client_credentials' },
authorization: 'Basic: cHJvY2VtcGEtYWRtaW46YzZmZmUxNzUtNDgyZS00NjMxLWE5YjEtMTBjNWIyNjZlYzZi',
'Content-Type': 'application/x-www-form-urlencoded' }
Error {"error":"unauthorized_client","error_description":"INVALID_CREDENTIALS: Invalid client credentials"}
解决方案
推荐阅读
- batch-file - 如何在“set /p variable=”下显示文本
- c# - 角度-devkit css 错误。优化-css-webpack-plugin.js
- http - 将Julia`download`的结果传递到内存而不是文件?
- sql - 实际上没有这样的表。c语言中的sqlite3
- java - 使用java改写段落
- git - Git Clone --Mirror 选项复制所有内容,但不复制 Hooks、Release、Issue 和 Insights?
- java - Kotlin 重新排序 LinkedHashMap 键的问题
- python - 我可以使用 github 页面在浏览器中操作图像吗?
- python-3.x - 循环 groupby,每次为 1 列绘制具有不同设定值的每个组
- python - 根据 datetimeindex 月份的最早日期复制值