Skip to content

Commit

Permalink
feat(react): expose dpop method generation (#1291) (release)
Browse files Browse the repository at this point in the history
  • Loading branch information
guillaume-chervet committed Feb 10, 2024
1 parent d5f1c9e commit 6b9b524
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion packages/react-oidc/src/ReactOidc.tsx
@@ -1,5 +1,6 @@
import { StringMap, OidcClient } from '@axa-fr/oidc-client';
import { useEffect, useState } from 'react';
import {Tokens} from "@axa-fr/oidc-client/dist/parseTokens";

const defaultConfigurationName = 'default';

Expand Down Expand Up @@ -72,6 +73,7 @@ const initTokens = (configurationName: string) => {
return {
accessToken: tokens.accessToken,
accessTokenPayload: tokens.accessTokenPayload,
generateDemonstrationOfProofOfPossessionAsync: oidc.configuration.demonstrating_proof_of_possession ? (url:string, method:string) => oidc.generateDemonstrationOfProofOfPossessionAsync(tokens.accessToken, url, method) : null,
};
}
return accessTokenInitialState;
Expand All @@ -80,6 +82,11 @@ const initTokens = (configurationName: string) => {
export type OidcAccessToken = {
accessToken?: any;
accessTokenPayload?: any;
generateDemonstrationOfProofOfPossessionAsync?: any;
}

function getGenerateDemonstrationOfProofOfPossessionAsync(oidc: OidcClient, tokens: Tokens) {
return oidc.configuration.demonstrating_proof_of_possession ? (url: string, method: string) => oidc.generateDemonstrationOfProofOfPossessionAsync(tokens.accessToken, url, method) : null;
}

export const useOidcAccessToken = (configurationName = defaultConfigurationName) => {
Expand All @@ -103,7 +110,11 @@ export const useOidcAccessToken = (configurationName = defaultConfigurationName)
name === OidcClient.eventNames.syncTokensAsync_error) {
if (isMounted) {
const tokens = oidc.tokens;
setAccessToken(tokens != null ? { accessToken: tokens.accessToken, accessTokenPayload: tokens.accessTokenPayload } : accessTokenInitialState);
setAccessToken(tokens != null ? {
accessToken: tokens.accessToken,
accessTokenPayload: tokens.accessTokenPayload ,
generateDemonstrationOfProofOfPossessionAsync: getGenerateDemonstrationOfProofOfPossessionAsync(oidc, tokens),
} : accessTokenInitialState);
}
}
});
Expand Down

0 comments on commit 6b9b524

Please sign in to comment.