MCPcopy
hub / github.com/authts/oidc-client-ts / getDpopProof

Method getDpopProof

src/OidcClient.ts:212–236  ·  view source on GitHub ↗
(dpopStore: DPoPStore, nonce?: string)

Source from the content-addressed store, hash-verified

210 }
211
212 async getDpopProof(dpopStore: DPoPStore, nonce?: string): Promise<string> {
213 let keyPair: CryptoKeyPair;
214 let dpopState: DPoPState;
215
216 if (!(await dpopStore.getAllKeys()).includes(this.settings.client_id)) {
217 keyPair = await CryptoUtils.generateDPoPKeys();
218 dpopState = new DPoPState(keyPair, nonce);
219 await dpopStore.set(this.settings.client_id, dpopState);
220 } else {
221 dpopState = await dpopStore.get(this.settings.client_id);
222
223 // if the server supplied nonce has changed since the last request, update the nonce
224 if (dpopState.nonce !== nonce && nonce) {
225 dpopState.nonce = nonce;
226 await dpopStore.set(this.settings.client_id, dpopState);
227 }
228 }
229
230 return await CryptoUtils.generateDPoPProof({
231 url: await this.metadataService.getTokenEndpoint(false),
232 httpMethod: "POST",
233 keyPair: dpopState.keys,
234 nonce: dpopState.nonce,
235 });
236 }
237
238 public async processResourceOwnerPasswordCredentials({
239 username,

Callers 3

processSigninResponseMethod · 0.95
useRefreshTokenMethod · 0.95
OidcClient.test.tsFile · 0.80

Calls 6

generateDPoPKeysMethod · 0.80
generateDPoPProofMethod · 0.80
getTokenEndpointMethod · 0.80
getAllKeysMethod · 0.65
setMethod · 0.65
getMethod · 0.65

Tested by

no test coverage detected