Pushed authorization request (RFC 9126)
curl --request POST \
--url https://prod-auth.tktchurch.com/oauth/par \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"response_type": "code",
"client_id": "<string>",
"redirect_uri": "<string>"
}
'import Foundation
let parameters = [
"response_type": "code",
"client_id": "<string>",
"redirect_uri": "<string>"
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://prod-auth.tktchurch.com/oauth/par")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
]
request.httpBody = postData
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({response_type: 'code', client_id: '<string>', redirect_uri: '<string>'})
};
fetch('https://prod-auth.tktchurch.com/oauth/par', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://prod-auth.tktchurch.com/oauth/par"
payload = {
"response_type": "code",
"client_id": "<string>",
"redirect_uri": "<string>"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"request_uri": "urn:ietf:params:oauth:request_uri:AbC12xYz04QwErTyUiOpAsDfGhJkLzXcVbNm",
"expires_in": 90
}{
"error": "invalid_request",
"error_description": "Redirect URI not registered for this client"
}{
"error": "invalid_client",
"error_description": "Client authentication failed"
}Pushed authorization request (RFC 9126)
Client-authenticated. Must not carry request_uri; client_id must match the authenticated client. Returns 201 with a one-time request_uri (90s TTL).
POST
/
oauth
/
par
Pushed authorization request (RFC 9126)
curl --request POST \
--url https://prod-auth.tktchurch.com/oauth/par \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"response_type": "code",
"client_id": "<string>",
"redirect_uri": "<string>"
}
'import Foundation
let parameters = [
"response_type": "code",
"client_id": "<string>",
"redirect_uri": "<string>"
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://prod-auth.tktchurch.com/oauth/par")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
]
request.httpBody = postData
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({response_type: 'code', client_id: '<string>', redirect_uri: '<string>'})
};
fetch('https://prod-auth.tktchurch.com/oauth/par', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://prod-auth.tktchurch.com/oauth/par"
payload = {
"response_type": "code",
"client_id": "<string>",
"redirect_uri": "<string>"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"request_uri": "urn:ietf:params:oauth:request_uri:AbC12xYz04QwErTyUiOpAsDfGhJkLzXcVbNm",
"expires_in": 90
}{
"error": "invalid_request",
"error_description": "Redirect URI not registered for this client"
}{
"error": "invalid_client",
"error_description": "Client authentication failed"
}Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Body
application/json
Must be code
Example:
"code"
Must match the authenticated client
Must be pre-registered
Space-separated scopes
Opaque CSRF value echoed back
S256 PKCE challenge
Must be S256
Example:
"S256"
OIDC nonce
