このコードは機能していません:
select *
from persons
where lower(email) = lower({email})
and (password = crypt('{password}', password))
and approved = 1
and now() between start_date and coalesce(end_date, current_timestamp );
ハッシュを設定する必要があるコードは正常に機能します。
Insert into persons (
person_id
, name_first
, name_last
, email
, phone
, username
, password
, start_date
, approved
, superuser)
values
(
nextval('PERSON_ID_SEQ')
, {name_first}
, {name_last}
, {email}
, {phone}
, 'username'
, crypt('{password}', gen_salt('md5'))
, now()
, 0
, 0
)
しかし、入力されたパスワードに対してハッシュをチェックするビットを正しく取得できないようです。where句でチェックを行いたいので、一致したときに人の行を返すことができます。
前もって感謝します マーティン