Pergunta

estou usando o flask-login biblioteca, e não consegui encontrar nenhum bom tutorial ou documentação sobre como permitir que um usuário redefina sua senha por e-mail.Que direção/recursos posso consultar sobre como fazer isso?Uma pesquisa completa no Google não revelou nada de útil.

Foi útil?

Solução

flask-login não cuida de e-mails de redefinição de senha e outras coisas semelhantes.Está lá apenas para gerenciar sessões e cookies.

Você deveria usar Flask-Security que adiciona funcionalidade de redefinição de senha e outros recursos comuns relacionados à segurança ao flask.Flask-Security usa flask-login para lidar com sessões, mas adiciona outros recursos para completar os recursos de segurança:

Confirmação de e-mail

Se desejar, você pode exigir que os novos usuários confirmem seus endereços de e-mail.A segurança do Flask enviará uma mensagem de email para qualquer novo usuário com um link de confirmação.Ao navegar para o link de confirmação, o usuário será logado automaticamente.Há também uma visualização para renderizar um link de confirmação para um determinado email se o usuário tentar usar um token expirado ou tiver perdido o email anterior.Os links de confirmação podem ser configurados para expirar após uma quantidade especificada de tempo.

Redefinição/recuperação de senha

A redefinição de senha e a recuperação está disponível para quando um usuário esquece sua senha.A segurança do Flask envia um email para o usuário com um link para uma visualização que eles podem redefinir sua senha.Depois que a senha é redefinida, ela é conectada automaticamente e pode usar a nova senha a partir de então.Os links de redefinição de senha podem ser configurados para expirar após uma quantidade especificada de tempo.

Cadastro de usuário

Flask-Security vem com uma visualização básica de registro de usuário.Essa visualização é muito simples e novos usuários precisam fornecer apenas um endereço de e -mail e sua senha.Essa visualização pode ser substituída [sic] se o seu processo de registro exigir mais campos.

Outras dicas

Lógica básica:

  1. Crie um formulário de redefinição de senha com email campo.
  2. Quando o usuário envia o formulário, você deve:
    1. verifique este e-mail no banco de dados
    2. gerar chave secreta aleatória criptografada indistinta (próxima apenas chave secreta)
    3. armazene esta chave, carimbo de data/hora atual e identificador de usuário no cache ou banco de dados
    4. envie para o e-mail ou sms do usuário
  3. Quando o usuário aplica uma chave secreta (por exemplo, com URL ou formulário especial), você deve:
    1. validá-lo (existir, não expirado, não usado antes)
    2. obter identificador de usuário
    3. excluir ou marcar como chave secreta atual usada
    4. forneça lógica para inserir/gerar nova senha.

A lógica para inserir/gerar senha pode ser diferente:

  1. faça login do usuário e mostre o formulário para inserir a nova senha - chave de login única
  2. mostre o formulário para inserir a senha do que o login, se válido
  3. gerar nova senha e enviá-la para o e-mail do usuário
  4. gerar nova chave secreta para o formulário inserir a nova senha e enviá-la para o e-mail do usuário
  5. gerar nova chave secreta para aprovar o formulário, enviá-lo via sms, mostrar o formulário para inserir a nova senha e chave secreta de aprovação e fazer login se for válido
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top