GET /.well-known/oauth-authorization-server/{mount}/v1
curl --request GET \
--url https://api.example.com/.well-known/oauth-authorization-server/{mount}/v1import requests
url = "https://api.example.com/.well-known/oauth-authorization-server/{mount}/v1"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/.well-known/oauth-authorization-server/{mount}/v1', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/.well-known/oauth-authorization-server/{mount}/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/.well-known/oauth-authorization-server/{mount}/v1"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/.well-known/oauth-authorization-server/{mount}/v1")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/.well-known/oauth-authorization-server/{mount}/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"authorization_endpoint": "<string>",
"code_challenge_methods_supported": [
"<string>"
],
"device_authorization_endpoint": "<string>",
"grant_types_supported": [
"<string>"
],
"issuer": "<string>",
"response_types_supported": [
"<string>"
],
"revocation_endpoint": "<string>",
"revocation_endpoint_auth_methods_supported": [
"<string>"
],
"token_endpoint": "<string>",
"token_endpoint_auth_methods_supported": [
"<string>"
]
}{
"error": "<string>",
"error_description": "<string>"
}OAuth
GET /.well-known/oauth-authorization-server/{mount}/v1
GET
/
.well-known
/
oauth-authorization-server
/
{mount}
/
v1
GET /.well-known/oauth-authorization-server/{mount}/v1
curl --request GET \
--url https://api.example.com/.well-known/oauth-authorization-server/{mount}/v1import requests
url = "https://api.example.com/.well-known/oauth-authorization-server/{mount}/v1"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/.well-known/oauth-authorization-server/{mount}/v1', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/.well-known/oauth-authorization-server/{mount}/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/.well-known/oauth-authorization-server/{mount}/v1"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/.well-known/oauth-authorization-server/{mount}/v1")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/.well-known/oauth-authorization-server/{mount}/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"authorization_endpoint": "<string>",
"code_challenge_methods_supported": [
"<string>"
],
"device_authorization_endpoint": "<string>",
"grant_types_supported": [
"<string>"
],
"issuer": "<string>",
"response_types_supported": [
"<string>"
],
"revocation_endpoint": "<string>",
"revocation_endpoint_auth_methods_supported": [
"<string>"
],
"token_endpoint": "<string>",
"token_endpoint_auth_methods_supported": [
"<string>"
]
}{
"error": "<string>",
"error_description": "<string>"
}路径参数
响应
Success
RFC 8414 §2, restricted to what this issuer actually implements.
v3 never served this document, so every client had its endpoints compiled in. Publishing it is what lets a client discover the mount it was pointed at instead of assuming one.
["S256"]. plain is deliberately absent.
RFC 8628 §4.
The issuer identifier: exactly the mount this document was fetched from, with no trailing slash (RFC 8414 §2).
["code"].
RFC 7009 §2.
["none"] as well, for the revocation endpoint.
["none"]: every registered client is public and this registry issues
no client secrets.