Recuperação de senha via email fuciona bem desde sempre.
na maioria dos meus projetos eu plugo um email do gmail mesmo via smtp, é de graça e tanka bem centenas de usuarios
O padrão de sistemas universitarios é expirar a sessão mesmo, pedindo senha de novo, é o mais seguro se o sistema for usado em computadores compartilhados.
mas se quiser uma sessão mais persistente vai poder só aumentar a validade do jwt
jwt se tornou o padrão simples de quem não quer ter uma tabela no banco de dados para sessões, mas se você quiser tambem é só gerar um token aleatório salvar em uma tabela sessões com id do usuario e data de criação e consultar essa tabela em toda requisição, isso te daria liberdade de invalidar sessões mesmo antes de expiração, limitar a apenas 1 dispositivo logado por vez, mas acho que no seu caso não tem porque ter esse controle mais fino, jwt da conta do recado