diff --git a/types/openid-client/index.d.ts b/types/openid-client/index.d.ts index 805091997b..51cc2eeb1f 100644 --- a/types/openid-client/index.d.ts +++ b/types/openid-client/index.d.ts @@ -2,7 +2,7 @@ // Project: https://github.com/panva/node-openid-client // Definitions by: ulrichb // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// TypeScript Version: 2.8 +// TypeScript Version: 3.0 /// @@ -20,6 +20,8 @@ export class Issuer { readonly metadata: IssuerMetadata; readonly Client: typeof Client; + + keystore(forceReload?: boolean): Promise; } export interface ClientMetadata { @@ -68,6 +70,14 @@ export class Client { }): Promise; userinfo(accessToken: string | TokenSet): Promise<{ readonly [name: string]: {} | null | undefined }>; + + grant(body: { + readonly grant_type: "authorization_code" | "client_credentials" | "password" | "refresh_token" | string; + readonly [name: string]: string | undefined; + }): Promise; + + introspect(token: string, tokenTypeHint?: string, extras?: { readonly introspectBody?: {} }): + Promise<{ readonly [name: string]: {} | null | undefined }>; } export class TokenSet { diff --git a/types/openid-client/openid-client-tests.ts b/types/openid-client/openid-client-tests.ts index cf5a8e631f..7557c42b13 100644 --- a/types/openid-client/openid-client-tests.ts +++ b/types/openid-client/openid-client-tests.ts @@ -5,6 +5,11 @@ async (req: IncomingMessage) => { const issuer = await Issuer.discover('https://accounts.google.com'); console.log('Discovered issuer %O', issuer.metadata.issuer); + issuer.keystore(); + issuer.keystore(true); + + // + const client = new issuer.Client({ client_id: 'c', client_secret: 's', @@ -13,10 +18,14 @@ async (req: IncomingMessage) => { }); console.log(client.metadata.client_id); + // + const code_verifier = generators.codeVerifier(); const code_challenge = generators.codeChallenge(code_verifier); + // + client.authorizationUrl({ scope: 'openid email profile', response_mode: 'form_post', @@ -26,14 +35,38 @@ async (req: IncomingMessage) => { code_challenge_method: 'S256', }).substring(0); + // + const params = client.callbackParams(req); - const tokenSet = await client.callback('https://client.example.com/callback', params, { code_verifier }); - console.log(tokenSet.id_token, tokenSet.access_token, tokenSet.refresh_token); - console.log(tokenSet.expired(), tokenSet.claims()["some claim name"]); + const callbackResponse = await client.callback('https://client.example.com/callback', params, { code_verifier }); + console.log(callbackResponse.id_token, callbackResponse.access_token, callbackResponse.refresh_token); + console.log(callbackResponse.expired(), callbackResponse.claims()["some claim name"]); + + // await client.userinfo("access token"); - const userinfo = await client.userinfo(tokenSet); + const userinfo = await client.userinfo(callbackResponse); console.log(userinfo["some user info name"]); + // + + const grantResponse = await client.grant({ + grant_type: "client_credentials", + acr_values: "acr_values", + }); + console.log(grantResponse.access_token); + + // + + const introspectResponse = await client.introspect("token"); + console.log(introspectResponse["some claim name"]); + + client.introspect("token", "tokenTypeHint"); + + client.introspect("token", "tokenTypeHint", {}); + client.introspect("token", "tokenTypeHint", { introspectBody: {} }); + + // + client.endSessionUrl({ id_token_hint: "id_token_hint" }).substring(0); };