pixiCheckPixiUserLogin
Prüft Benutzername und Passwort eines Pixi-Benutzers, optional einen Berechtigungscode, und liefert, ob die Anmeldung gültig ist, samt E-Mail und echtem Namen.
Prüft die Anmeldedaten eines Pixi-Benutzers (Tabelle UCS_USERS).
- Das Passwort wird mit
dbo.PixiEncryptverschlüsselt. Das gespeicherte PasswortUSER_PWDwird mit diesem verschlüsselten Wert verglichen. - Der Benutzer wird über
UserNamegesucht. IstUSER_PWDbeim BenutzerNULL, greift die Passwortprüfung Version 2: Die Prozedur ruftpixi.UserPassword_ValidateV2mit Benutzername und Klartext-Passwort auf. Meldet diese Prozedur Erfolg, gilt die Passwortprüfung als bestanden. ValidUserist nur dann1, wenn ein Benutzer mit dem angegebenenUserNameexistiert und alle folgenden Bedingungen erfüllt sind:- Das Passwort stimmt, entweder über den klassischen Vergleich oder über die V2-Prüfung.
- Ist
CheckPermissiongesetzt, besitzt der Benutzer eine Rolle (USER_HAS_ROLES→USER_ROLES→ROLE_HAS_PERMISSIONS) mit einer Berechtigung, derenPermission_CodegleichCheckPermissionist. Ein Leerstring bedeutet keine Berechtigungsprüfung. - Das Konto ist nicht abgelaufen:
User_expireist nicht1, oder es ist1undExpiration_dateliegt nach dem aktuellen Zeitpunkt. User_active = 1. Andernfalls istValidUsergleich0.
- Bei gültiger Anmeldung werden die Ausgabeparameter
UserEmailundUserRealNameausUser_EmailundREAL_NAMEbefüllt.NULL-Werte werden zu Leerstrings. - Ist
SuppressDatasetnicht1, liefert die Prozedur eine Zeile mitValidUser,UserName,UserEmailundUserRealName.
Hinweise
- Die zurückgegebene Zeile enthält
UserEmailundUserRealName, sobald der Benutzername existiert, auch wennValidUser0 ist, etwa bei falschem Passwort. Existiert der Benutzer nicht, sind beide SpaltenNULL. Die AusgabeparameterUserEmail/UserRealNamewerden dagegen nur bei gültiger Anmeldung gesetzt. dbo.PixiEncryptist lediglich eine einfache XOR-Verschleierung und kein kryptografischer Hash. Das Passwort sollte nur über die verschlüsselte Verbindung übertragen werden.pixi.UserPassword_ValidateV2liegt nicht vor. Die genaue Logik und mögliche Seiteneffekte, etwa Protokollierung oder Sperrung, sind unbekannt.- Ist
User_expireNULL, ergibt die Ablaufbedingung nicht wahr. Solche Benutzer werden daher abgewiesen. - Der Vergleich des Benutzernamens hängt von der Datenbank-Collation ab. Die erste Suche für die V2-Prüfung verwendet
COLLATE DATABASE_DEFAULT, die Gültigkeitsprüfung nicht. - Alle Lesezugriffe der Gültigkeitsprüfung erfolgen mit
NOLOCK.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
UserName
Pflicht
|
varchar(1024) string |
– |
Pixi-Benutzername ( Beispiel: |
Password
Pflicht
|
varchar(1024) string |
– |
Passwort des Benutzers im Klartext. Beispiel: |
CheckPermission
|
varchar(5) string |
NULL |
Optionaler Berechtigungscode ( Beispiel: |
ValidUser
OUTPUT
|
bit boolean |
NULL |
Ausgabe: |
SuppressDataset
|
bit boolean |
NULL |
Bei Erlaubte Werte
Beispiel: |
UserEmail
OUTPUT
|
varchar(100) string |
NULL |
Ausgabe: E-Mail-Adresse des Benutzers, nur bei gültiger Anmeldung gesetzt. Leerstring, wenn keine hinterlegt ist. |
UserRealName
OUTPUT
|
varchar(40) string |
NULL |
Ausgabe: echter Name des Benutzers, nur bei gültiger Anmeldung gesetzt. Leerstring, wenn keiner hinterlegt ist. |
Antwort
Result-Set 1 · Wenn SuppressDataset nicht 1 ist.
Eine Zeile mit dem Ergebnis der Anmeldeprüfung.
| Spalte | Typ | Beschreibung |
|---|---|---|
ValidUser
|
bit boolean |
|
UserName
|
varchar(1024) string |
Der übergebene Benutzername. |
UserEmail
Kann leer sein |
string |
E-Mail-Adresse aus |
UserRealName
Kann leer sein |
string |
Echter Name aus |
Beispielantwort
<SqlRowSet1>
<row>
<ValidUser>true</ValidUser>
<UserName>shopapi</UserName>
<UserEmail>shopapi@example.com</UserEmail>
<UserRealName>Shop Schnittstelle</UserRealName>
</row>
</SqlRowSet1>
Beispiele
POST https://apigateway.descartes.com/tms/pixi/
Content-Type: text/xml; charset=utf-8
Authorization: Basic BASE64(USERNAME:PASSWORD)
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
<SOAP-ENV:Body>
<ns1:pixiCheckPixiUserLogin>
<UserName>shopapi</UserName>
<Password>S3cret!2024</Password>
<!-- <CheckPermission>API</CheckPermission> -->
<!-- <ValidUser>?</ValidUser> -->
<!-- <SuppressDataset>0</SuppressDataset> -->
<!-- <UserEmail>?</UserEmail> -->
<!-- <UserRealName>?</UserRealName> -->
</ns1:pixiCheckPixiUserLogin>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
curl -X POST 'https://apigateway.descartes.com/tms/pixi/' \
--user 'USERNAME:PASSWORD' \
--header 'Content-Type: text/xml; charset=utf-8' \
--data-binary @- <<'XML'
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
<SOAP-ENV:Body>
<ns1:pixiCheckPixiUserLogin>
<UserName>shopapi</UserName>
<Password>S3cret!2024</Password>
<!-- <CheckPermission>API</CheckPermission> -->
<!-- <ValidUser>?</ValidUser> -->
<!-- <SuppressDataset>0</SuppressDataset> -->
<!-- <UserEmail>?</UserEmail> -->
<!-- <UserRealName>?</UserRealName> -->
</ns1:pixiCheckPixiUserLogin>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XML
<?php
$soapClient = new SoapClient(null, [
'login' => 'USERNAME',
'password' => 'PASSWORD',
'location' => 'https://apigateway.descartes.com/tms/pixi/',
'uri' => 'https://apigateway.descartes.com/tms/pixi/',
]);
$arguments = [
'UserName' => 'shopapi',
'Password' => 'S3cret!2024',
// 'CheckPermission' => 'API',
// 'ValidUser' => '?',
// 'SuppressDataset' => '0',
// 'UserEmail' => '?',
// 'UserRealName' => '?',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiCheckPixiUserLogin', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiCheckPixiUserLogin