Validade de senha (expirar por dias)

Pessoal, boa tarde!
Gostaria de discutir aqui a melhor forma de expirar a senha de um usuário depois de decorridos alguns dias, meses ou até anos.

Melhor usar um listen para pegar a validade ou data da criação da senha no banco e fazer a verificação de todos os usuários diariamente ou verificar qdo o usuário entrar na aplicação ?

Quando o usário se logar na aplicação, até mesmo porque, o usário pode passar um tempo sem se logar no sistema e a senha dele expirar.

Aqui eu utilizo quando o usuário vai logar na aplicação.
Depois de autenticado, é verificada a data de expiração da senha. Caso já tenha expirado, antes de acessar a aplicação é solicitado que re-cadastre a senha.

Rafael,
é exatamente o que pensei em fazer. E pelo jeito a melhor alternativa mesmo.

Valeu.