Fonction pl/pgsql et utilisation de pgcrypto
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:
Code:
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'; |
J'obtiens l'erreur suivante:
Code:
1 2
| ERREUR: erreur de syntaxe sur ou près de « bf »
LINE 7: passHash := SELECT crypt(pass, gen_salt('bf')); |
Je precise que pgcrypto est installé et fonctionnel:
Code:
select crypt('pass', gen_salt('bf'))
donne: crypt
$2a$06$ahMgc9nqlkVipyNonFZ6yu/l5vQdYeY.eeoOhBT6DcmU2BMuEbD4e
Merci d'avance.