Skip to content

Commit 764854f

Browse files
committed
feat(oidc-client): implement tokens.get
1 parent e393843 commit 764854f

File tree

16 files changed

+430
-151
lines changed

16 files changed

+430
-151
lines changed

e2e/oidc-app/index.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111

1212
<style>
1313
#logout,
14-
#userinfo {
14+
#userinfo,
15+
#tokens {
1516
display: none;
1617
}
1718
</style>
@@ -21,6 +22,7 @@ <h1>Welcome</h1>
2122
<button id="login">Login</button>
2223
<button id="logout">Logout</button>
2324
<button id="userinfo">User Info</button>
25+
<button id="tokens">Get Tokens</button>
2426
<script type="module" src="/src/main.ts"></script>
2527
</body>
2628
</html>

e2e/oidc-app/src/main.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ async function app() {
5555
console.log('Token Exchange Response:', tokenResponse);
5656
document.getElementById('logout')!.style.display = 'block';
5757
document.getElementById('userinfo')!.style.display = 'block';
58+
document.getElementById('tokens')!.style.display = 'block';
5859
document.getElementById('login')!.style.display = 'none';
5960
}
6061
}
@@ -79,10 +80,21 @@ async function app() {
7980
console.log('Logout successful');
8081
document.getElementById('logout')!.style.display = 'none';
8182
document.getElementById('userinfo')!.style.display = 'none';
83+
document.getElementById('tokens')!.style.display = 'none';
8284
document.getElementById('login')!.style.display = 'block';
8385
}
8486
});
8587

88+
document.getElementById('tokens')?.addEventListener('click', async () => {
89+
const tokens = await oidcClient.token.get({ backgroundRenew: true });
90+
91+
if ('error' in tokens) {
92+
console.error('Token Retrieval Error:', tokens);
93+
} else {
94+
console.log('Tokens:', tokens);
95+
}
96+
});
97+
8698
if (code && state) {
8799
const response = await oidcClient.token.exchange(code, state);
88100

packages/davinci-client/src/lib/davinci.api.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,13 @@ import {
2121
* Import internal modules
2222
*/
2323
import { initQuery } from '@forgerock/sdk-request-middleware';
24-
import type { logger as loggerFn } from '@forgerock/sdk-logger';
2524
import { createAuthorizeUrl } from '@forgerock/sdk-oidc';
26-
import type { RequestMiddleware } from '@forgerock/sdk-request-middleware';
2725

2826
import { handleResponse, transformActionRequest, transformSubmitRequest } from './davinci.utils.js';
2927

28+
import type { logger as loggerFn } from '@forgerock/sdk-logger';
29+
import type { ActionTypes, RequestMiddleware } from '@forgerock/sdk-request-middleware';
30+
3031
/**
3132
* Import the DaVinci types
3233
*/
@@ -39,7 +40,6 @@ import type {
3940
} from './davinci.types.js';
4041
import type { ContinueNode } from './node.types.js';
4142
import type { StartNode } from '../types.js';
42-
import { ActionTypes } from '@forgerock/sdk-request-middleware';
4343

4444
type BaseQueryResponse = Promise<
4545
QueryReturnValue<unknown, FetchBaseQueryError, FetchBaseQueryMeta>

packages/oidc-client/src/lib/authorize.request.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import { AuthorizeErrorResponse, AuthorizeSuccessResponse } from './authorize.re
3030
* @param {GetAuthorizationUrlOptions} options - Optional parameters for the authorization request.
3131
* @returns {Micro.Micro<AuthorizeSuccessResponse, AuthorizeErrorResponse, never>} - A micro effect that resolves to the authorization response.
3232
*/
33-
export async function authorizeµ(
33+
export function authorizeµ(
3434
wellknown: WellKnownResponse,
3535
config: OidcConfig,
3636
log: CustomLogger,
@@ -60,7 +60,7 @@ export async function authorizeµ(
6060
return Micro.succeed(response);
6161
}
6262
log.error('Error in authorize response', response);
63-
// For redirection, we need to remore `pi.flow` from the options
63+
// For redirection, we need to remove `pi.flow` from the options
6464
const redirectOptions = options;
6565
delete redirectOptions.responseMode;
6666
return createAuthorizeErrorµ(response, wellknown, config, options);

packages/oidc-client/src/lib/authorize.request.types.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
export interface AuthorizeSuccessResponse {
88
code: string;
99
state: string;
10-
redirectUrl?: string; // Optional, used when the response is from a P1 server
1110
}
1211

1312
export interface AuthorizeErrorResponse {

0 commit comments

Comments
 (0)