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-Type: application/json

Content:

{
"email": "E-Mail-Adresse“,
"password": "Passwort“,
"deviceid": "GeräteID“
}

Antwort vom Shop

Erfolg:

HTTP-Code: 200

Content:

{
"token": "TOKEN“
}

Beispiel:

{ "token": "ey6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6Ikp..." }

Das Token kann von der App dauerhaft gespeichert werden.

Fehler:

HTTP-Code: 400

Content:

{
"ErrCode": "Detaillierter Fehlercode (siehe Kapitel Fehlercodes)“,
"ErrMsg": "Detaillierte Fehlermeldung in der Sprache des Shops (optional)“
}

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
X-Authorization: Bearer TOKEN

Content:

{
"deviceid": "GeräteID“
}

Antwort vom Shop

Erfolg:

HTTP-Code: 200

Content:

{
"sid": "Session-ID“
}

Beispiel:

{ "sid": "12aa3318987654bccbff991155226677" }

Fehler:

HTTP-Code: 400

Content:

{
"ErrCode": "Detaillierter Fehlercode (siehe Kapitel Fehlercodes)“,
"ErrMsg": "Detaillierter Fehlermeldung in der Sprache des Shops (optional)“
}

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-Type: application/json

Content:

{
"email": "E-Mail-Adresse“,
"password": "Passwort“
}

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:

{
"ErrCode": "Detaillierter Fehlercode (siehe Kapitel Fehlercodes)“,
"ErrMsg": "Detaillierter Fehlermeldung in der Sprache des Shops (optional)“
}

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-Type: application/json
X-Authorization: Bearer TOKEN

Content:

{
"sid": "Session-ID“
}

Antwort vom Shop

Erfolg:

HTTP-Code: 200

Content: Kein Content

Fehler:

HTTP-Code: 400

Content:

{
"ErrCode": "Detaillierter Fehlercode (siehe Kapitel Fehlercodes)“,
"ErrMsg": "Detaillierter Fehlermeldung in der Sprache des Shops (optional)“
}

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