curl --request GET \
--url https://test-api.segmnt.cloud/auth/{provider}/callbackimport requests
url = "https://test-api.segmnt.cloud/auth/{provider}/callback"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://test-api.segmnt.cloud/auth/{provider}/callback', 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://test-api.segmnt.cloud/auth/{provider}/callback",
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://test-api.segmnt.cloud/auth/{provider}/callback"
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://test-api.segmnt.cloud/auth/{provider}/callback")
.asString();require 'uri'
require 'net/http'
url = URI("https://test-api.segmnt.cloud/auth/{provider}/callback")
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{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "plan_limit_reached",
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "plan_limit_reached",
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "plan_limit_reached",
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "plan_limit_reached",
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "plan_limit_reached",
"detail": "<string>"
}Complete an SSO sign-in (the provider redirects here)
The provider redirects the browser here with code and state. The API
checks state and the flow cookie, exchanges the code (PKCE, and the
nonce for Google), creates the account on first sign-in, sets the
segmnt_session cookie (30 days), clears the flow cookie and redirects
to return_to.
A second provider links to an existing account only when its e-mail is provider-verified; otherwise it creates a new account. Every new account is flagged for internal review (A12). The flag never leaves the API.
curl --request GET \
--url https://test-api.segmnt.cloud/auth/{provider}/callbackimport requests
url = "https://test-api.segmnt.cloud/auth/{provider}/callback"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://test-api.segmnt.cloud/auth/{provider}/callback', 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://test-api.segmnt.cloud/auth/{provider}/callback",
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://test-api.segmnt.cloud/auth/{provider}/callback"
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://test-api.segmnt.cloud/auth/{provider}/callback")
.asString();require 'uri'
require 'net/http'
url = URI("https://test-api.segmnt.cloud/auth/{provider}/callback")
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{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "plan_limit_reached",
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "plan_limit_reached",
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "plan_limit_reached",
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "plan_limit_reached",
"detail": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "plan_limit_reached",
"detail": "<string>"
}Path Parameters
Sign-in provider id, from GET /auth/providers (for example google).
^[a-z0-9_-]+$Query Parameters
The provider's authorization code. Missing when the user denied sign-in.
The state the API sent in the authorize URL. Must match the flow cookie.
Provider error when the user denied sign-in, for example access_denied.
Response
Signed in. Location is return_to; Set-Cookie carries the session.