Bonjour,
J'apprends à utiliser nodejs avec adonisjs. J'ai codé une route qui renvoi vers un Controller qui exécute un provider.
Le but est très simple, je veux juste me connecter à un ldap, et retourner les détails d'un utilisateur sans utiliser les callback, mais plutôt les promises (faut bien apprendre ...).
Pour le moment dans mon provider, j'ai fait beaucoup de console.log. J'implémenterai les retour des ok/error quand je saurai comment faire ...
Je passe le fichier de routes car pas important. Voici mon Controller:
Et mon Provider. Pourquoi est ce que le return ne renvoie rien ?? Je pensais que le await servait justement à récupérer les data quand ils sont prêt ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 class AuthenticationController { async checkUser({request, response}) { let tmp = await Ldap.verifyUser(request.body); console(tmp); let statusCode = 200; let result = { status: "success", statusCode: statusCode, statusMessage: "Command granted", data: "ok" }; await response.status(statusCode).json(result); } }
J'espère que vous pourrez m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 class Ldap { constructor(Config) { this.config = Config; //console.log(this.config); } async verifyUser(request) { const self = this; var LdapClient = require('promised-ldap'); var client = new LdapClient({ url: "ldap://" + Env.get('LDAP_HOST') + ":" + Env.get("LDAP_PORT") }); let opts = { filter: '(&(sAMAccountName=' + request.username + ')(cn=*))', scope: 'sub', attributes: [] }; client.bind(Env.get('LDAP_USER'), Env.get('LDAP_PASSWORD')) .then((data) => { console.log("bind ok"); }) .catch((error) => { console.error(error); }); client.search(Env.get('LDAP_BASE_DN'), opts) .then((data) => { let dn = data.entries[0].objectName; let userDetails = data.entries[0].object; client.bind(dn, request.password) .then((data) => { //console.log(data); console.log("=== true ==="); return data; // J'ESSAI DE RECUPERER CA }) .catch((error) => { console.error(error); }); }) .catch((error) => { console.error(error); }); client.unbind(); } }
Partager