使用 Angular 7 by REST API 在 keycloak 上创建用户
Create user on keycloak with Angular 7 by REST API
我在 Keycloak 上注册用户时遇到了一点问题。
我用keycloak-admin-client
:
let keycloakAdminClient = require('keycloak-admin-client');
当客户端尝试创建用户时,服务器提示 403 forbidden。
keycloakAdminClient(clientSettings)
.then((clients) => {
console.log('[newRegistration - keycloakAdminClient] init success');
console.log(clients.token);
clients.users.create(environment.KEYCLOAK_REALM, newKeycloakUser)
.then((createdUser) => {
console.log('[newRegistration - keycloakAdminClient - client.users.create] success - createdUser = ' + createdUser);
// findNewUserId(newKeycloakUser.username);
return newKeycloakUser.username;
})
.catch((err) => {
console.log('[newRegistration - keycloakAdminClient - client.users.create] error - code = ', err);
});
})
.catch((err) => {
console.log('[newRegistration - keycloakAdminClient] init error - code = ', err);
});
console.log('[newRegistration] END');
};
这是客户端的设置:
export const environment = {
production: false,
KEYCLOAK_URL: 'http://10.10.15.35:8080/auth',
KEYCLOAK_REALM: 'baulogistik_test',
KEYCLOAK_CLIENTID: 'angular-frontend',
BACKEND_URL: 'http://10.10.15.35:8080/api',
CLIENT_SECRET: '296f7a0f-a0f5-4395-a120-ece8565bbce1'
};
const clientSettings = {
production: environment.production,
baseUrl: environment.KEYCLOAK_URL,
client_id: environment.KEYCLOAK_CLIENTID,
realmName: environment.KEYCLOAK_REALM,
grant_type: 'client_credentials',
client_secret: environment.CLIENT_SECRET
}
我可以通过密钥登录客户端并获得accessToken
。
客户端具有管理员角色。
有人给我建议吗?
谢谢!
我明白了。
您必须将领域管理客户端中的角色添加到您的管理员角色。
之后,用户必须具有管理员角色。
然后必须在 Angular app:
中扩展 clientSettings
添加管理员用户的用户名和密码
修改grant_type为密码
const clientSettings = {
production: environment.production,
baseUrl: environment.KEYCLOAK_URL,
client_id: environment.KEYCLOAK_CLIENTID,
realmName: environment.KEYCLOAK_REALM,
grant_type: 'password',//'client_credentials',
username: environment.username,
password: environment.password,
client_secret: environment.CLIENT_SECRET
我在 Keycloak 上注册用户时遇到了一点问题。
我用keycloak-admin-client
:
let keycloakAdminClient = require('keycloak-admin-client');
当客户端尝试创建用户时,服务器提示 403 forbidden。
keycloakAdminClient(clientSettings)
.then((clients) => {
console.log('[newRegistration - keycloakAdminClient] init success');
console.log(clients.token);
clients.users.create(environment.KEYCLOAK_REALM, newKeycloakUser)
.then((createdUser) => {
console.log('[newRegistration - keycloakAdminClient - client.users.create] success - createdUser = ' + createdUser);
// findNewUserId(newKeycloakUser.username);
return newKeycloakUser.username;
})
.catch((err) => {
console.log('[newRegistration - keycloakAdminClient - client.users.create] error - code = ', err);
});
})
.catch((err) => {
console.log('[newRegistration - keycloakAdminClient] init error - code = ', err);
});
console.log('[newRegistration] END');
};
这是客户端的设置:
export const environment = {
production: false,
KEYCLOAK_URL: 'http://10.10.15.35:8080/auth',
KEYCLOAK_REALM: 'baulogistik_test',
KEYCLOAK_CLIENTID: 'angular-frontend',
BACKEND_URL: 'http://10.10.15.35:8080/api',
CLIENT_SECRET: '296f7a0f-a0f5-4395-a120-ece8565bbce1'
};
const clientSettings = {
production: environment.production,
baseUrl: environment.KEYCLOAK_URL,
client_id: environment.KEYCLOAK_CLIENTID,
realmName: environment.KEYCLOAK_REALM,
grant_type: 'client_credentials',
client_secret: environment.CLIENT_SECRET
}
我可以通过密钥登录客户端并获得accessToken
。
客户端具有管理员角色。
有人给我建议吗? 谢谢!
我明白了。 您必须将领域管理客户端中的角色添加到您的管理员角色。
之后,用户必须具有管理员角色。 然后必须在 Angular app:
中扩展 clientSettings添加管理员用户的用户名和密码
修改grant_type为密码
const clientSettings = { production: environment.production, baseUrl: environment.KEYCLOAK_URL, client_id: environment.KEYCLOAK_CLIENTID, realmName: environment.KEYCLOAK_REALM, grant_type: 'password',//'client_credentials', username: environment.username, password: environment.password, client_secret: environment.CLIENT_SECRET