OAuth Integration
Byg sikre integrationer med Shoporama API ved hjælp af OAuth 2.0
Hvad er OAuth?
OAuth gør det muligt for eksterne applikationer at få sikker adgang til Shoporama API'et på vegne af dine brugere, uden at de skal dele deres login-oplysninger.
Trygt og sikkert
Ingen deling af passwords. Brugerne logger ind direkte hos Shoporama
Nem integration
Standard OAuth 2.0 flow som du kender fra andre tjenester
Fleksibel
Vælg præcist hvilke rettigheder din app skal have
OAuth Flow - Trin for trin
Send bruger til Shoporama
Appen din sender brukeren til Shoporamas OAuth-sluttpunkt
https://www.shoporama.dk/admin/oauth/login?
client_id=Din_App_Navn
redirect_uri=https://example.com/callback
state=unik_session_id
Bruker logger inn
Brukeren logger inn med Shoporama-legitimasjonen sin og velger:
- Hvilken butikk du skal gi tilgang til
- Tilgangsnivå (lese-, skrive- eller full tilgang)
Motta API-token
Etter autentisering sendes brukeren tilbake til appen din med tokenet:
https://example.com/callback?
token=3035a113a0d324783628...
shop_url=demo.shoporama.dk
shop_name=Demo Shop
api_endpoint=https://www.shoporama.dk/REST
webshop_id=1
access_level=all
state=unik_session_id
Bruk API-et
Bruk tokenet til å ringe Shoporama API:
curl -H "Authorization: 3035a113a0d324783628..." \
https://www.shoporama.dk/REST/product
Klar til at komme i gang?
Begynn med å teste OAuth-flyten, eller les mer om API-et
Komplette Implementeringseksempler
Fuld OAuth flow implementation - klar til copy/paste
Vanilla PHP Implementation
Ren PHP uden frameworks - en enkelt fil der håndterer hele OAuth flowet
<?php
// oauth.php - Gem denne fil på din server
session_start();
// Konfiguration - RET DISSE VÆRDIER
$CLIENT_ID = "Dit App Navn";
$REDIRECT_URI = "https://din-side.dk/oauth.php";
$OAUTH_URL = "https://www.shoporama.dk/admin/oauth/login";
// Start OAuth
if (isset($_GET["login"])) {
$_SESSION["state"] = bin2hex(random_bytes(16));
$url = $OAUTH_URL . "?" . http_build_query([
"client_id" => $CLIENT_ID,
"redirect_uri" => $REDIRECT_URI,
"state" => $_SESSION["state"]
]);
header("Location: $url");
exit;
}
// Modtag token
if (isset($_GET["token"]) && $_GET["state"] === $_SESSION["state"]) {
$_SESSION["token"] = $_GET["token"];
$_SESSION["api_url"] = $_GET["api_endpoint"];
echo "Success! Token gemt.";
echo "
Test API";
exit;
}
// Test API
if (isset($_GET["test"]) && isset($_SESSION["token"])) {
$ch = curl_init($_SESSION["api_url"] . "/product?limit=1");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: " . $_SESSION["token"]]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo "" . htmlspecialchars($result) . "
";
exit;
}
// Start side
echo "Login med Shoporama";
?>
Sådan bruger du det:
- Kopier koden til en fil kaldet
oauth.php
- Ret
$CLIENT_ID
og$REDIRECT_URI
- Upload filen til din server
- Besøg siden og klik "Login med Shoporama"
Feilsøking og vanlige problemer
Vanlige OAuth-feil
access_denied
Brukeren ble nektet tilgang. Vis en vennlig melding og la dem prøve igjen.
invalid_client
Ukjent client_id. Kontroller at appnavnet ditt er riktig.
invalid_redirect_uri
Omdirigerings-URI samsvarer ikke. Må være nøyaktig samme URL.
state_mismatch
Statusparameteren stemmer ikke overens. Mulig CSRF-angrep eller tidsavbrudd i økten.
API-feil
401 Unauthorized
Tokenet er ugyldig eller utløpt. Be brukeren om å logge på igjen.
403 Forbidden
Tokenet har ikke de nødvendige rettighetene. Sjekk tilgangsnivået.
429 Too Many Requests
Takstgrensen er nådd. Vennligst vent til neste forespørsel.
500 Server Error
Intern feil. Vennligst prøv igjen senere eller kontakt kundestøtte.
Tips om feilsøking
Test med OAuth Test Client
Bruk testklienten vår for å bekrefte at OAuth-flyten fungerer som den skal.
Test OAuth Flow →Loggfør alle parametere
Loggstatus, token og andre parametere for å feilsøke problemer.
Sikkerhet og beste praksis
Token-lagring
- • Aldri lagre tokens i informasjonskapsler eller localStorage
- • Bruk økter på serversiden eller kryptert database
- • Krypter tokens før lagring
- • Slett tokens når de ikke lenger er i bruk
CSRF-beskyttelse
- • Bruk alltid tilstandsparameteren
- • Generer unik tilstand for hver økt
- • Bekreft tilstand i tilbakeringing
- • Timeout-tilstand etter kort tid
HTTPS kreves
- • Bruk kun HTTPS for redirect_uri
- • Alle API-kall må gå via HTTPS
- • Unntak: localhost for utvikling
- • Sjekk gyldigheten til SSL-sertifikatet
Forklaring av tilgangsnivåer
Nivå | Beskrivelse | Tillatt | Ikke tillatt |
---|---|---|---|
read | Lesetilgang til alle data | GET-forespørsler til alle endepunkter | POST-, PUT- og DELETE-forespørsler |
write | Lese og skrive data | Alle HTTP-metoder | Slett nettbutikk, endre eierskap |
all | Full administratortilgang | Alt, inkludert farlige operasjoner | Ingenting - full kontroll |
Anbefaling: Begynn med "lesetilgang" under utviklingen, og oppgrader til "skrivetilgang" eller "alle" bare når det er nødvendig for funksjonaliteten i applikasjonen.
Komplett API-dokumentasjon
Se alle tilgjengelige endepunkter, metoder og parametere i vår REST API-dokumentasjon
Se API-dokumentasjon