Sie sollten sich nicht auf die System _users
Sammlung für Ihre eigene Benutzerlogik verlassen. Die Sammlung ist ausschließlich für die eigenen Benutzerobjekte von ArangoDB gedacht, nicht für die Benutzerverwaltung auf Anwendungsebene.
Wenn Sie wirklich die eigene Benutzerverwaltung von ArangoDB verwenden möchten, ist die Verwendung von org/arangodb/users
innerhalb von ArangoDB (z. B. mit Foxx) die beste Möglichkeit, dies bei deaktivierter Authentifizierung anzuzeigen. Das Modul stellt eine isValid
Methode, die einen Benutzernamen und ein Passwort nimmt und gibt eine Bedingung, die anzeigt, ob die Kombination gültig ist oder nicht:
var users = require('org/arangodb/users');
controller.post('/checkpw', function (req, res) {
var credentials = req.params('credentials');
res.json({
valid: users.isValid(
credentials.username,
credentials.password
)
});
})
.bodyParam('credentials', joi.object({
username: joi.string().required(),
password: joi.string().required()
}).required());
Der Benutzer HTTP-API zur Zeit belichten diese Methode nicht, so ist dies der einzige Weg, um dies zu tun, ohne sich auf äußerst instabile Implementierungsdetails verlassen zu müssen (das Format der _users
Sammlung hat sich während 2.x geändert und die Sammlung könnte sich in der Zukunft wieder ändern).
BEARBEITEN: ArangoDB 3.0 wird wahrscheinlich eine API-Route hinzufügen, die ein Token zurückgibt (anstatt die Datenbank mit Sitzungsobjekten aufzufüllen), wenn sie mit einem gültigen Benutzernamen und Passwort versehen ist. Dies sollte die Integration in die integrierte Benutzerverwaltung erleichtern, aber die Vorbehalte bleiben gleich: ArangoDB-Benutzer sind in erster Linie für die Autorisierung auf API-Ebene gedacht, nicht für Anwendungslogik.
Danke. Dann denke ich, dass die beste Option sein wird, meine eigene Benutzer-Sammlung zu erstellen – Dovi