oauth
Oauth Authorize
Returns the OAuth authorization URL for the given provider. Frontend should redirect the user to this URL.
GET
/
auth
/
oauth
/
{provider}
/
authorize
Oauth Authorize
curl --request GET \
--url https://api.example.com/auth/oauth/{provider}/authorizeimport requests
url = "https://api.example.com/auth/oauth/{provider}/authorize"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/auth/oauth/{provider}/authorize', 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/auth/oauth/{provider}/authorize",
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/auth/oauth/{provider}/authorize"
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/auth/oauth/{provider}/authorize")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/auth/oauth/{provider}/authorize")
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_url": "<string>",
"provider": "<string>",
"state": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Previous
Oauth CallbackHandles the OAuth callback. Exchanges the authorization code for user info,
creates or finds the user, and returns JWT tokens.
The frontend should verify the state parameter matches what was returned
by /authorize before calling this endpoint.
Next
⌘I
Oauth Authorize
curl --request GET \
--url https://api.example.com/auth/oauth/{provider}/authorizeimport requests
url = "https://api.example.com/auth/oauth/{provider}/authorize"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/auth/oauth/{provider}/authorize', 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/auth/oauth/{provider}/authorize",
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/auth/oauth/{provider}/authorize"
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/auth/oauth/{provider}/authorize")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/auth/oauth/{provider}/authorize")
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_url": "<string>",
"provider": "<string>",
"state": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}