@okta-dfuhriman/okta-auth-js
Version:
The Okta Auth SDK
28 lines (22 loc) • 791 B
text/typescript
import { postToParEndpoint } from '../endpoints';
import { OktaAuthOAuthInterface, TokenParams } from '../types';
export async function preparePAR(sdk: OktaAuthOAuthInterface, tokenParams: TokenParams) {
const { jwtAuthorizationRequest, pushAuthorizationRequest, pushAuthorizationUrl } = sdk?.options || {};
if (!tokenParams?.clientAssertion && pushAuthorizationRequest) {
const now = Math.floor(Date.now() / 1000);
const { clientAssertion, expiresAt, requestUri } = await postToParEndpoint(
sdk,
{
pushAuthorizationUrl,
jwtAuthorizationRequest,
...tokenParams
});
if (requestUri && expiresAt > now) {
tokenParams['requestUri'] = requestUri;
}
if (clientAssertion) {
tokenParams['clientAssertion'] = clientAssertion;
}
}
return tokenParams;
}