Bonjour, j'essaye d'écrire une fonction qui permet de vérifier la validité du mot de passe au niveau de postgre et non à celui de php, mais j'ai une erreur lorsque je tente de créer cette fonction:
J'obtiens l'erreur suivante:
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 CREATE OR REPLACE FUNCTION valPass(VARCHAR, TEXT) RETURNS BOOLEAN AS ' DECLARE userToLog ALIAS FOR $1; pass ALIAS FOR $2; passHash TEXT; BEGIN passHash := SELECT crypt(pass, gen_salt('bf')); IF (passHash = SELECT pass FROM login WHERE user = userToLog) THEN RETURN true; ELSE RETURN false; END IF; END; ' LANGUAGE 'plpgsql';
Je precise que pgcrypto est installé et fonctionnel:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ERREUR: erreur de syntaxe sur ou près de « bf » LINE 7: passHash := SELECT crypt(pass, gen_salt('bf'));
donne: crypt
Code : Sélectionner tout - Visualiser dans une fenêtre à part select crypt('pass', gen_salt('bf'))
$2a$06$ahMgc9nqlkVipyNonFZ6yu/l5vQdYeY.eeoOhBT6DcmU2BMuEbD4e
Merci d'avance.
Partager