GET Anbieterrückruf im ursprünglichen Browser bestätigen
/api/v1/auth/oauth/{provider}/callback
Prüft Browserbindung, State, PKCE und Anbieteridentität. Tokens gelangen nicht in Rücksprung-URLs. Vorhandene Mailkonten benötigen ausdrückliche Verknüpfung statt automatischer Zuordnung.
Auf dieser Seite
Zugriff und Rechte
Prüft Browserbindung, State, PKCE und Anbieteridentität. Tokens gelangen nicht in Rücksprung-URLs. Vorhandene Mailkonten benötigen ausdrückliche Verknüpfung statt automatischer Zuordnung.
Eine Kontoanmeldung ist nicht erforderlich. Die angegebenen Prüfungen der Browserherkunft und Nutzungslimits gelten weiterhin.
Parameter und Header
| Feld | Position | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|---|
| provider | Pfad | string; {"enum":["google","github"]} | Ja | Unterstützter Loginanbieter: google oder github. |
| state | URL-Parameter | string | Nein | Undurchsichtiger OAuth-Zustand gegen CSRF, erzeugt vom Client oder Loginversuch. Erhalten Sie ihn unverändert im Callback. |
| code | URL-Parameter | string | Nein | Vom Anbieter ausgegebener Autorisierungscode. Behandeln Sie ihn als Geheimnis und übermitteln Sie ihn ausschließlich an den registrierten Callback. |
| error | URL-Parameter | string | Nein | Fehleranzeige im Anbietercallback; sie authentifiziert kein Konto. |
Anfragekörper
Kein Anfragekörper.
Antworten
| Header | Typ und Grenzen | Bedeutung |
|---|---|---|
| Cache-Control | string; {"pattern":"(?:^|,\\s*)no-store(?:,|$)"} | Private API-Antworten verbieten Speicherung. Öffentliche OAuth-Metadaten werden 300 Sekunden gecacht; Livestreams verbieten zusätzlich Transformation. |
| Content-Language | string; {"enum":["en","de"]} | Sprache lesbarer Antworttexte aus Accept-Language oder der dokumentierten Browserpräferenz. Technische Codes und Kennungen bleiben stabil. |
| Location | string | Geprüftes lokales oder registriertes Rücksprungziel. |
| Referrer-Policy | JSON; {"enum":["strict-origin-when-cross-origin","no-referrer"]} | Standard-Referrerpolicy ist strict-origin-when-cross-origin. Anbieterloginantworten verwenden no-referrer zum Schutz der Loginparameter. |
| Vary | string | Antworten variieren nach Accept-Language; browsergerenderte Antworten können zusätzlich nach Präferenzcookie variieren. |
| X-Content-Type-Options | JSON; {"const":"nosniff"} | Der Browser muss den angegebenen Inhaltstyp verwenden. |
| X-Frame-Options | JSON; {"const":"DENY"} | Die Antwort darf nicht in einem Frame eingebettet werden. |
| X-Request-ID | string | Vom Server erzeugte Anfragekennung. Bei Fehlermeldungen mitgeben; eingehende Werte werden nicht als vertrauenswürdig übernommen. |
Wiederholungen und asynchrone Aufträge
Diese Operation liest oder prüft, ohne eine Ressourcenänderung anzuwenden. Beachten Sie Ratenlimits und Zugangslaufzeiten.
Anfragebeispiele
Ersetzen Sie Demokennungen, Zeitstempel und Platzhalter durch eigene Werte. Behalten Sie bei Wiederholungen Kennungen, Zeit und Inhalt bei. Diese Beispiele führen auf der Seite keine Anfragen aus.
Halten Sie Anmeldelinks, Codes, Cookies und Schlüssel privat. Schreiben Sie sie nicht in Logs und teilen Sie sie nicht in Hilfeanfragen.
curl --silent --show-error --output /dev/null --write-out "%{http_code}\n" \
--request GET \
"https://metribeacon.com/api/v1/auth/oauth/google/callback"
import json
from pathlib import Path
from urllib.request import Request, HTTPRedirectHandler, build_opener
from urllib.error import HTTPError
headers = {}
request = Request("https://metribeacon.com/api/v1/auth/oauth/google/callback", data=None, headers=headers, method="GET")
class NoRedirect(HTTPRedirectHandler):
def redirect_request(self, request, fp, code, message, headers, target):
return None
opener = build_opener(NoRedirect())
try:
with opener.open(request, timeout=10) as response:
print(response.status)
except HTTPError as error:
print(error.code)
error.close()
import { readFile } from "node:fs/promises";
import { homedir } from "node:os";
import { join } from "node:path";
const headers = {};
const response = await fetch("https://metribeacon.com/api/v1/auth/oauth/google/callback", {
method: "GET", headers, redirect: "manual",
signal: AbortSignal.timeout(10000),
});
console.log(response.status);
await response.body?.cancel();
package main
import (
"fmt"
"net/http"
"time"
)
func main() {
request, err := http.NewRequest("GET", "https://metribeacon.com/api/v1/auth/oauth/google/callback", nil)
if err != nil { panic("request failed; credentials and response omitted") }
client := &http.Client{Timeout: 10*time.Second, CheckRedirect: func(*http.Request, []*http.Request) error { return http.ErrUseLastResponse }}
response, err := client.Do(request)
if err != nil { panic("request failed; credentials and response omitted") }
defer response.Body.Close()
fmt.Println(response.StatusCode)
}
Verwandte Anleitungen
- HTTP-API, OAuth und MCP
Finden Sie die Nutzer-API-Endpunkte mit Rechten, Feldern, Beispielen und Antwortformaten.
- POST Anmeldung, Registrierung oder Identitätsverknüpfung starten
login, register und link haben getrennte Zwecke. Registrierung verlangt Freigabe und aktuelle Rechtstextbestätigung. Verknüpfen benötigt Browsersitzung und später frischen Aktionscode. Browsercookie, State und PKCE binden den Ablauf zehn Minuten.
- POST Code für eine einzelne sensible Aktion anfordern
Fordern Sie einen sechsstelligen Bestätigungscode für eine sensible Konto- oder Arbeitsbereichsänderung an. Er gilt fünf Minuten und erlaubt fünf Fehlversuche. Nutzen Sie zur Bestätigung denselben angemeldeten Browser, dieselbe Aktion, dasselbe Ziel und dieselben Parameter. Ein nach 60 Sekunden angeforderter Ersatz macht den bisherigen Code dieser Aktion ungültig. Für Ihr Konto nutzen Sie link_identity, unlink_identity, add_passkey, remove_passkey oder delete_self; Mitgliedschaftsaktionen brauchen Besitzerrechte. Anmeldecodes bestätigen keine Änderungen.
- DELETE Eigene ausstehende Aktionsbestätigung abbrechen
Nur eine ausstehende Bestätigung des aktuellen Kontos und der aktuellen Sitzung kann abgebrochen werden.