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.
Tryggt och säkert
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
Din app skickar användaren till Shoporamas OAuth-slutpunkt
https://www.shoporama.dk/admin/oauth/login?
client_id=Din_App_Navn
redirect_uri=https://example.com/callback
state=unik_session_id
Användaren loggar in
Användaren loggar in med sina Shoporama-referenser och väljer:
- Vilken butik som ska få tillgång till
- Åtkomstnivå (läsning, skrivning eller fullständig åtkomst)
Ta emot API-token
Efter autentiseringen skickas användaren tillbaka till din app med token:
https://example.com/callback?
token=62abf6a4be326a634611...
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
Använd API:et
Använd token för att anropa Shoporama API:
curl -H "Authorization: 62abf6a4be326a634611..." \
https://www.shoporama.dk/REST/product
Klar til at komme i gang?
Börja med att testa OAuth-flödet eller läs 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"
Felsökning och vanliga problem
Vanliga OAuth-fel
access_denied
Användaren nekades åtkomst. Visa ett vänligt meddelande och låt dem försöka igen.
invalid_client
Okänt klient_id. Kontrollera att ditt appnamn är korrekt.
invalid_redirect_uri
Omdirigerings-URI:n matchar inte. Måste vara exakt samma URL.
state_mismatch
Statsparametern stämmer inte överens. Möjlig CSRF-attack eller timeout för sessionen.
API-fel
401 Unauthorized
Token är ogiltig eller har löpt ut. Be användaren att logga in igen.
403 Forbidden
Token har inte de nödvändiga rättigheterna. Kontrollera access_level.
429 Too Many Requests
Prisgränsen har nåtts. Vänligen vänta till nästa begäran.
500 Server Error
Internt fel. Vänligen försök igen senare eller kontakta support.
Tips för felsökning
Testa med OAuth-testklient
Använd vår testklient för att verifiera att ditt OAuth-flöde fungerar korrekt.
Test OAuth Flow →Logga alla parametrar
Logga status, token och andra parametrar för att felsöka problem.
Säkerhet och bästa praxis
Förvaring av tokens
- • Lagra aldrig tokens i cookies eller localStorage
- • Använda sessioner på serversidan eller krypterad databas
- • Kryptera tokens före lagring
- • Ta bort tokens när de inte längre används
CSRF-skydd
- • Använd alltid tillståndsparameter
- • Skapa ett unikt tillstånd för varje session
- • Verifiera tillstånd i återuppringning
- • Timeouttillstånd efter kort tid
HTTPS krävs
- • Använd endast HTTPS för redirect_uri
- • Alla API-anrop måste ske via HTTPS
- • Undantag: localhost för utveckling
- • Kontrollera SSL-certifikatets giltighet
Åtkomstnivåer förklarade
Nivå | Beskrivning | Tillåtet | Inte tillåtet |
---|---|---|---|
read | Läsbehörighet till all data | GET-förfrågningar till alla endpoints | POST-, PUT- och DELETE-förfrågningar |
write | Läsa och skriva data | Alla HTTP-metoder | Ta bort webbshop, ändra ägare |
all | Fullständig administratörsbehörighet | Allt inklusive farliga arbetsmoment | Ingenting - full kontroll |
Rekommendation: Börja med "read"-åtkomst under utvecklingen och uppgradera till "write" eller "all" först när det är nödvändigt för applikationens funktionalitet.
Fullständig API-dokumentation
Se alla tillgängliga endpoints, metoder och parametrar i vår REST API-dokumentation
Se API-dokumentation