Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/thin-nights-send.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@forgerock/oidc-client': minor
---

Implement token `get` method for local tokens and autorenew
4 changes: 3 additions & 1 deletion e2e/oidc-app/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@

<style>
#logout,
#userinfo {
#userinfo,
#tokens {
display: none;
}
</style>
Expand All @@ -21,6 +22,7 @@ <h1>Welcome</h1>
<button id="login">Login</button>
<button id="logout">Logout</button>
<button id="userinfo">User Info</button>
<button id="tokens">Get Tokens</button>
<script type="module" src="/src/main.ts"></script>
</body>
</html>
12 changes: 12 additions & 0 deletions e2e/oidc-app/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ async function app() {
console.log('Token Exchange Response:', tokenResponse);
document.getElementById('logout')!.style.display = 'block';
document.getElementById('userinfo')!.style.display = 'block';
document.getElementById('tokens')!.style.display = 'block';
document.getElementById('login')!.style.display = 'none';
}
}
Expand All @@ -79,10 +80,21 @@ async function app() {
console.log('Logout successful');
document.getElementById('logout')!.style.display = 'none';
document.getElementById('userinfo')!.style.display = 'none';
document.getElementById('tokens')!.style.display = 'none';
document.getElementById('login')!.style.display = 'block';
}
});

document.getElementById('tokens')?.addEventListener('click', async () => {
const tokens = await oidcClient.token.get({ backgroundRenew: true });

if ('error' in tokens) {
console.error('Token Retrieval Error:', tokens);
} else {
console.log('Tokens:', tokens);
}
});

if (code && state) {
const response = await oidcClient.token.exchange(code, state);

Expand Down
6 changes: 3 additions & 3 deletions packages/davinci-client/src/lib/davinci.api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ import {
* Import internal modules
*/
import { initQuery } from '@forgerock/sdk-request-middleware';
import type { logger as loggerFn } from '@forgerock/sdk-logger';
import { createAuthorizeUrl } from '@forgerock/sdk-oidc';
import type { RequestMiddleware } from '@forgerock/sdk-request-middleware';

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

import type { logger as loggerFn } from '@forgerock/sdk-logger';
import type { ActionTypes, RequestMiddleware } from '@forgerock/sdk-request-middleware';

/**
* Import the DaVinci types
*/
Expand All @@ -39,7 +40,6 @@ import type {
} from './davinci.types.js';
import type { ContinueNode } from './node.types.js';
import type { StartNode } from '../types.js';
import { ActionTypes } from '@forgerock/sdk-request-middleware';

type BaseQueryResponse = Promise<
QueryReturnValue<unknown, FetchBaseQueryError, FetchBaseQueryMeta>
Expand Down
4 changes: 2 additions & 2 deletions packages/oidc-client/src/lib/authorize.request.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import { AuthorizeErrorResponse, AuthorizeSuccessResponse } from './authorize.re
* @param {GetAuthorizationUrlOptions} options - Optional parameters for the authorization request.
* @returns {Micro.Micro<AuthorizeSuccessResponse, AuthorizeErrorResponse, never>} - A micro effect that resolves to the authorization response.
*/
export async function authorizeµ(
export function authorizeµ(
wellknown: WellKnownResponse,
config: OidcConfig,
log: CustomLogger,
Expand Down Expand Up @@ -60,7 +60,7 @@ export async function authorizeµ(
return Micro.succeed(response);
}
log.error('Error in authorize response', response);
// For redirection, we need to remore `pi.flow` from the options
// For redirection, we need to remove `pi.flow` from the options
const redirectOptions = options;
delete redirectOptions.responseMode;
return createAuthorizeErrorµ(response, wellknown, config, options);
Expand Down
1 change: 0 additions & 1 deletion packages/oidc-client/src/lib/authorize.request.types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
export interface AuthorizeSuccessResponse {
code: string;
state: string;
redirectUrl?: string; // Optional, used when the response is from a P1 server
}

export interface AuthorizeErrorResponse {
Expand Down
Loading
Loading