WS-App-Login (DE)
Allgemeines
Um über eine Server-, PC- oder Smartphone-basierte Applikation einen Login in einem WEBSALE Shop zu ermöglichen, kann die hier beschriebene Schnittstelle genutzt werden.
Begriffsfestlegung
App-Login: Diese Schnittstelle wird “App-Login“ genannt.
App: Für “Applikation“ wird nachfolgend das Wort “App“ verwendet.
Gerät: Trägersysteme der Apps wie z. B. Server, Desktop-Rechner, Tablet-PC, Smartphone, etc. werden nachfolgend “Gerät“ genannt.
Datensicherheit
Keine Speicherung des Passwortes
Die Login-Daten (E-Mail + Passwort) werden in der App eingegeben und an den Shop gesendet. Die App darf das Shop-Passwort des Benutzers nicht speichern. Damit der Benutzer nicht jedesmal bei einem Shop-Besuch seine Login-Daten erneut eingeben muss, fordert die App vom Shop ein Token (JSON Web Token nach Industriestandard: RFC 7519) an, das dauerhaft gespeichert werden kann. Mit diesem Token kann ein Login im Shop erfolgen bzw. eine Session eröffnet werden.
Ãœbertragung der Daten
SSL-Verbindung
Es ist immer eine SSL-Verbindung zum Shopserver aufzubauen, um die Kommunikation durchzuführen. Unverschlüsselte Verbindungen werden vom Shop abgelehnt.
REST-API
Die Kommunikation zum Shop erfolgt per REST (Representational State Transfer). Der Content wird im JSON-Format übergeben.
Schnittstellen-Funktionen
Funktion “GetToken“
Anfordern eines Tokens vom Shop, welches dauerhaft von der App gespeichert werden kann. Es müssen die Login-Daten eines im Shop existierenden Benutzer-Kontos übergeben werden. Zusätzlich wird die eindeutige GeräteID übergeben.
Funktion “GetSID“
Anfordern einer Session-ID. Hierzu muss das gespeicherte Token und die GeräteID übergeben werden. Anschließend wird zum Shop mit der übergebenen Session-ID verlinkt. Eine Session besitzt einen Standard-Timeout von 2 Stunden.
Funktion “Register“
Es wird ein neuer User im Shop angelegt.
Funktion “Logout“
Die Session wird beendet.
Datenaustausch
GetToken
URL: https://Ihre-Shop-Domain/_api/shop/AppLogin/GetToken |
Anfrage von der App
HTTP-Header:
Method: POST |
Content:
{ |
Antwort vom Shop
Erfolg:
HTTP-Code: 200 |
Content:
{ |
Beispiel:
{
"token": "ey6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6Ikp..."
}
Das Token kann von der App dauerhaft gespeichert werden.
Fehler:
HTTP-Code: 400 |
Content:
{ |
GetSID
Mittels des Tokens wird eine Session-ID vom Shop angefordert. Anschliessend wird zum Shop mit dieser Session-ID verlinkt. Die Session-ID kann von der App gespeichert werden, falls von der App multiple Shop-Verlinkungen ausgeführt werden.
URL: https://Ihre-Shop-Domain/_api/shop/AppLogin/GetSID |
Anfrage von der App
HTTP-Header:
Method: POST |
Content:
{ |
Antwort vom Shop
Erfolg:
HTTP-Code: 200 |
Content:
{ |
Beispiel:
{
"sid": "12aa3318987654bccbff991155226677"
}
Fehler:
HTTP-Code: 400 |
Content:
{ |
Register
Anlegen eines neuen Benutzers im Shop. Ein Benutzer kann nur dann neu angelegt werden, wenn noch kein Konto im Shop mit der übergebenen E-Mail-Adresse existiert. Außerdem wird das übergebene Passwort mit dem im Shop eingestellten Passwort-Güte-Richtlinien verglichen. Ist das Passwort z. B. zu kurz oder zu einfach, dann wird das Anlegen eines neuen Benutzers vom Shop abgelehnt.
Als Faustregel für das Passwort gilt:
Mindestlänge: 8 Zeichen
Das Passwort muss mindestens
1 Buchstabe
1 Ziffer
1 Sonderzeichen
enthalten.
Das Passwort darf nicht identisch bzw. ähnlich der E-Mail-Adresse sein.
Bitte kontaktieren Sie die WEBSALE AG bzgl. den im Shop eingestellten Passwort-Güte-Richtlinien.
URL: https://Ihre-Shop-Domain/_api/shop/AppLogin/Register |
Anfrage von der App
HTTP-Header:
Method: POST |
Content:
{ |
Antwort vom Shop
Erfolg:
HTTP-Code: 200 |
Content: Kein Content
Anschließend kann via „GetToken“ ein Token vom Shop angefordert werden.
Fehler:
HTTP-Code: 400 |
Content:
{ |
Logout
Für das Logout muss zwingend das Token übergeben werden.
URL: https://Ihre-Shop-Domain/_api/shop/AppLogin/Logout |
Anfrage von der App
HTTP-Header:
Method: POST |
Content:
{ |
Antwort vom Shop
Erfolg:
HTTP-Code: 200 |
Content: Kein Content
Fehler:
HTTP-Code: 400 |
Content:
{ |
Verlinkung zum Shop mit der Session-ID
Nachdem eine Session-ID angefordert und in der App gespeichert wurde kann auf den Shop verlinkt werden. Der Benutzer ist in dieser Session bereits angemeldet.
Beispiele Verlinkung
Verlinkung zur Startseite:
https://Ihre-Shop-Domain/?sid=<Session-ID> |
Beispiel:
https://Ihre-Shop-Domain/?sid=12aa3318987654bccbff991155226677
Verlinkung auf ein bestimmtes Produkt:
https://Ihre-Shop-Domain/SEO-Produkt-Name/?sid=<Session-ID> |
Beispiel:
https://Ihre-Shop-Domain/Reithose-Felix/?sid=12aa3318987654bccbff991155226677
Verlinkung auf eine bestimmte Kategorie:
https://Ihre-Shop-Domain/SEO-Kategorie-Name/?sid=<Session-ID> |
Beispiel:
https://Ihre-Shop-Domain/Damenreithosen/?sid=12aa3318987654bccbff991155226677
Fehlercodes
Code | Beschreibung |
2000 | Intern |
2001 | Intern |
2002 | keine E-Mail-Adresse angegeben |
2003 | kein Passwort angegeben |
2004 | zu viele fehlgeschlagene Loginversuche, Login zeitweise gesperrt |
2005 | Intern |
2006 | Intern |
2007 | Intern |
2008 | Login nicht erfolgreich |
2009 | Login nicht erfolgreich |
2010 | Intern |
2011 | keine Berechtigung für den gewünschten SubShop |
2012 | Intern |
3000 | Intern |
3001 | Intern |
3002 | keine gültige E-Mail-Adresse |
3003 | keine gültige E-Mail-Adresse |
3004 | Passwort unsicher, da Passwort zu kurz |
3005 | Passwort unsicher, da Passwort und E-Mail-Adresse zu ähnlich |
3006 | Passwort unsicher, da Passwort gleich E-Mail-Adresse |
3007 | Passwort unsicher, da zu einfach |
3008 | Passwort unsicher, enthält zu viele identische Zeichen |
3009 | Passwort und Wiederholung stimmen nicht überein |
3010 | Intern |
3011 | E-Mail-Adresse existiert bereits |
3012 | Intern |
3014 | Intern |
3015 | intern |
3016 | Intern |
3017 | Intern |
3018 | Intern |
3020 | E-Mail-Adresse und Passwort entsprechen nicht den Anforderungen |
3021 | E-Mail-Adresse nicht angegeben |
3022 | E-Mail-Adresse zu lang |
3023 | Passwort nicht angegeben |
3024 | Passwort zu lang |
3025 | Zeichenklassenfehler |
3026 | Palindromfehler |
3027 | Wörterbuchcheck fehlgeschlagen |
3028 | Rückwärtswörterbuchcheck fehlgeschlagen |
5000 | Kein Type angegeben |
5003 | Type Register nicht freigeschalten |
5005 | Logout nicht möglich: User nicht angemeldet/Session abgelaufen |
5006 | Type unbekannt/nicht unterstützt |
5008 | Schnittstelle nicht freigeschalten |
9001 | Intern |