OAuth Integration
Bygg sikre integrasjoner med Shoporama API ved hjelp av OAuth 2.0
Hva er OAuth?
OAuth gir eksterne applikasjoner sikker tilgang til Shoporama API på vegne av brukerne dine uten å dele påloggingsinformasjonen deres.
Trygt og sikkert
Ingen deling av passord. Brukere logger inn direkte på Shoporama
Enkel integrering
Standard OAuth 2.0-flyt som du kjenner fra andre tjenester
Fleksibel
Velg nøyaktig hvilke rettigheter appen din skal ha
OAuth Flow - trinn for trinn
Send bruker 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=4e5cc874fce61c4e7e69...
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: 4e5cc874fce61c4e7e69..." \
https://www.shoporama.dk/REST/product
Er du klar til å 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_IDog$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