Files
openid-client/docs/functions/buildAuthorizationUrlWithPAR.md

3.1 KiB

Function: buildAuthorizationUrlWithPAR()

💗 Help the project

Support from the community to continue maintaining and improving this module is welcome. If you find the module useful, please consider supporting the project by becoming a sponsor.


â–¸ buildAuthorizationUrlWithPAR(config, parameters, options?): Promise<URL>

Returns a URL to redirect the user-agent to, in order to request authorization at the Authorization Server with a prior step of using PAR

Note

URL of the authorization server's authorization endpoint must be configured.

Note

URL of the authorization server's pushed authorization request endpoint must be configured.

Parameters

Parameter Type Description
config Configuration -
parameters Record<string, string> | URLSearchParams Authorization request parameters that will be sent to PAR
options? DPoPOptions -

Returns

Promise<URL>

URL Instance with URL.searchParams including client_id and request_uri.

Examples

Using PAR

let config!: client.Configuration
let redirect_uri!: string
let scope!: string

// these must be unique for every single authorization request
let code_verifier = client.randomPKCECodeVerifier()
let code_challenge =
  await client.calculatePKCECodeChallenge(code_verifier)

let redirectTo = await client.buildAuthorizationUrlWithPAR(config, {
  redirect_uri,
  scope,
  code_challenge,
  code_challenge_method: 'S256',
})
// redirect now

Using JAR and PAR together

let config!: client.Configuration
let redirect_uri!: string
let scope!: string
let key!: client.CryptoKey

// these must be unique for every single authorization request
let code_verifier = client.randomPKCECodeVerifier()
let code_challenge =
  await client.calculatePKCECodeChallenge(code_verifier)

let { searchParams: params } = await client.buildAuthorizationUrlWithJAR(
  config,
  {
    redirect_uri,
    scope,
    code_challenge,
    code_challenge_method: 'S256',
  },
  key,
)

let redirectTo = await client.buildAuthorizationUrlWithPAR(
  config,
  params,
)
// redirect now