Recentemente comecei a exigir MFA para todos os usuários do meu fórum e me disseram que muitos usuários não conseguiriam ver o tópico que fornece orientações sobre como usar o MFA (muitos usuários não são técnicos).
Embora o artigo seja acessível a usuários anônimos, se um usuário estiver logado, mas não tiver se cadastrado no MFA, ele não conseguirá ver nada do site. Eles ficam presos nas preferências de segurança do usuário com esta mensagem:
Embora eu pessoalmente espere que um usuário consiga lidar com isso, orientei usuários que não usam aplicativos autenticadores e usuários paranóicos quanto à privacidade sobre como usar o MFA de uma “forma mais privada”.
Poupem-me das palestras, eu sei.
Seria bom se eu pudesse incluir informações na mensagem de aplicação que ajudassem mais os usuários, como recomendar um gerenciador de senhas ou aplicativo autenticador, ou aconselhar os usuários a garantir que o horário do dispositivo com o autenticador esteja correto. Caso contrário, muitos usuários, que admitidamente são desinformados, terão uma experiência ruim e lutarão contra mim ainda mais do que já estão fazendo.
Como nota lateral, as chaves de acesso (passkeys) são MFA; isso deve ser resolvido.
Editar o texto do site conforme mencionado acima é a maneira mais simples de fornecer algumas instruções, mas nesse contexto você está limitado a apenas texto.
Se quiser adicionar algum HTML (links, imagens, etc.), você pode criar um novo componente de tema na área administrativa de temas e componentes.
Na aba de componentes (admin/config/customize/components), clique em “instalar”, depois em “criar novo”, dê um nome óbvio… e, uma vez criado o componente, clique em “editar código”.
A partir daí, vá para a aba JS e adicione algo como este exemplo:
import { apiInitializer } from "discourse/lib/api";
const CustomMessage = <template>
<div class="custom-2fa-message">
Seu conteúdo personalizado aqui acima do conteúdo existente.
<a href="#">Exemplo de link</a>
</div>
</template>;
export default apiInitializer("1.0", (api) => {
api.renderBeforeWrapperOutlet("user-second-factor-wrapper", CustomMessage);
});
Do departamento do “não foi isso que você pediu”, talvez você dê às pessoas uma semana ou um mês para ativar a autenticação de dois fatores e insistir até que consigam. Sim, o current_user tem um atributo second_factor_enabled, então você pode exibir um grande banner dizendo “O FIM ESTÁ PRÓXIMO” para quem ainda não conseguiu, com um link para as instruções.