Keycloak Admin API client generated by OpenAPI codegen
npm install keycloak-admin-api-clientbash
npm install keycloak-admin-api-client
`
Usage (NestJS)
Below is an example of how you can use the keycloak-admin-api-client in a NestJS service to interact with the Keycloak Admin API.
$3
`typescript
import {Injectable} from '@nestjs/common';
import {Authentication, BaseKeycloakService, UserRepresentation, UsersApi} from 'keycloak-admin-api-client';
const usersApi = new UsersApi('https://localhost');
const currenRealm = 'your-realm';
@Injectable()
export class UsersService extends BaseKeycloakService {
constructor() {
super();
}
async findAllRealmUsers(): Promise {
return this.invoke({
invocationName: 'adminRealmsRealmUsersGet',
addAuthentication: (auth: Authentication) => usersApi.setDefaultAuthentication(auth),
invokeApi: () => usersApi.adminRealmsRealmUsersGet(currenRealm)
}).then(value => {
return Promise.resolve(value.data)
}).catch(reason => Promise.reject(reason));
}
async findRealmUserById(userId: string): Promise {
return this.invoke({
invocationName: 'adminRealmsRealmUsersUserIdGet',
addAuthentication: (auth: Authentication) => usersApi.setDefaultAuthentication(auth),
invokeApi: () => usersApi.adminRealmsRealmUsersUserIdGet(currenRealm, userId)
}).then(value => {
return Promise.resolve(value.data)
}).catch(reason => Promise.reject(reason));
}
}
`
$3
1. Import the Package: First, you import the necessary components such as UsersApi, HttpBearerAuth, and the model UserRepresentation from keycloak-admin-api-client.
2. Create a Service: In this example, the UsersService is a simple NestJS service that interacts with Keycloak’s Admin API to fetch users from a specified realm.
3. Authorization: Use HttpBearerAuth for authorization. You need to pass a valid Keycloak access token (httpBearerAuth.accessToken = 'your-access-token-here').
4. Fetching Users: The method adminRealmsRealmUsersGet uses the API client to send requests to Keycloak to fetch user data from a specific realm.
$3
- Typed Responses: Since the package is built with TypeScript, you can take advantage of the typed responses, making it easier to work with API data.
- Auto-generated API Client: The client was generated from an OpenAPI specification, providing full coverage of the Keycloak Admin API.
License
This package is licensed under the MIT License.
`
$3
- Replace the placeholder your-access-token-here with a real access token in your actual usage.
- Similarly, update 'your-realm-name'` to the actual realm you want to fetch users from.