@nodearch/keycloak
Version:
NodeArch Keycloak Wrapper
72 lines • 1.53 kB
TypeScript
import jwt from 'jsonwebtoken';
export interface IKeycloakOptions {
hostname?: string;
issuer?: string;
clientId?: string;
jwtVerify?: jwt.VerifyOptions;
claims?: {
[key: string]: string | number | boolean | {
(value: any): boolean;
};
};
realmJWTPath?: string | {
(decodedToken: IJWT): string;
};
}
export interface IJWT {
header: IJWTHeader;
payload: IJWTPayload;
}
export interface IJWTHeader {
alg: string;
typ?: string;
kid: string;
jku?: string;
x5u?: string;
x5t?: string;
}
export interface IJWTPayload {
jti: string;
exp: number;
iat?: number;
iss: string;
aud: string | string[];
sub: string;
typ?: string;
azp?: string;
auth_time?: number;
nonce?: string;
acr?: string;
scope: string;
email_verified?: boolean;
name?: string;
preferred_username?: string;
given_name?: string;
family_name?: string;
email?: string;
'allowed-origins'?: string[];
realm_access: {
roles: string[];
[key: string]: any;
};
resource_access: {
[clientId: string]: {
roles: string[];
[key: string]: any;
};
};
[key: string]: any;
}
export interface IAuthInfo {
token: string;
info: IJWTPayload;
realm: string;
permissions?: [
{
scopes: string[];
rsid: string;
rsname: string;
}
];
}
//# sourceMappingURL=interfaces.d.ts.map