Im Gegensatz zu den meisten anderen Anwendungen besitzt der Account selbst keine festgeschriebene Authentifizierung. Wenn ein neuer Account erstellt wird wird auch eine Session erstellt und dem Client gesendet, daher durch die Erstellung ist man mit dem neuen Account auch eingeloggt.
Der Account kann anschliessend mit Authentifizierungen verknüpft werden:
- Kombination von E-Mail Adresse und Passwort
- Eindeutige Identifikation eines Gerätes
Dies hat den Vorteil dass der Account unabhängig ist von den Authentifizierungen und diese sich einfach erweitern lassen, sei es Facebook Connect, OAuth oder ähnliches.
Abfragen einer gültigen Session in einer API Klasse
In der API Klasse kann durch eine Annotation festgelegt werden dass der Client zum Abfragen dieser Methode eine gültige Session benötigt. Innerhalb der Methode kann über den Service der Session auf diese zugegriffen werden um auch auf die ID des Accounts zuzugreifen.
Beispiel zur Abfrage einer gültigen Session:
namespace Test\Api; class Test { use \DragonJsonServer\ServiceManagerTrait; /** * @DragonJsonServerAccount\Annotation\Session */ public function getAccountId() { $serviceManager = $this->getServiceManager(); $session = $serviceManager->get('\DragonJsonServerAccount\Service\Session')->getSession(); return $session->getAccountId(); } } |
Aktivierung und Verwendung der Abfrage von Betakeys
Zur Aktivierung des Features muss ein Flag in der Konfigurationsdatei gesetzt werden:
return [ 'dragonjsonserveraccount' => [ 'betakeys' => true, ], ]; |
Die Betakeys die verwendet werden können müssen in die Tabelle “betakeys” der Datenbank eingepflegt werden. Jeder Betakey kann dabei nur für die Erstellung eines Accounts verwendet werden. Alternativ zum manuellen Einpflegen in die Datenbank kann auch die API Methode “BetakeyAdmin.generateBetakeys” über den Apiclient verwendet werden.