Empêcher le navigateur de se souvenir des informations d'identification (Mot de passe)
Est-il possible après le traitement de tout Formulaire de connexion pour empêcher le navigateur d'offrir une option pour mémoriser le mot de passe?
Je sais que c'est été posées et répondues ici, mais aucune des réponses ont travaillé jusqu'à présent, même l'un d'eux a suggéré d'utiliser:
autocomplete="off"
Mais qui n'a pas travaillé.
Je suis en utilisant AngularJS et Jade comme moteur de template (je ne sais pas si c'est pertinent ou pas de toute façon), est-il possible de faire cela?
Pas possible puisque je n'ai pas accès pour le moment de modifier les contrôleurs de la portée ou les services sur le serveur principal, en fait ils ne sont pas nommés comme
Pourquoi avez-vous besoin de cette fonctionnalité? Si c'est seulement pour s'assurer que les entrées sont vides, vous pouvez effacer manuellement dans votre contrôleur? Bien que ce comportement serait source de confusion pour l'utilisateur, donc pas vraiment recommandé.
Vérifier ces: stackoverflow.com/questions/32369/... stackoverflow.com/questions/468288/...
C'est probablement va être difficile de donner une très robuste, multi-navigateur, solution d'avenir à l'évolution du comportement du navigateur. Si vous voulez désespérément pour ce faire, vous auriez probablement avoir recours à la création d'un élément d'INTERFACE personnalisé qui ressemble à une boîte de mot de passe à l'utilisateur, mais ne serait pas reconnue par le navigateur en tant que tel. Depuis que vous utilisez Angulaire, vous pourriez probablement faire un personnalisé directive $formateurs, etc. à partir de la ngModelController pour effet le caractère de masquage. Ouais, ça sonne comme un vilain hack, mais je ne pense pas vraiment une bonne solution je ferais confiance.
password
ou email
, juste pss
et usrnme
Pourquoi avez-vous besoin de cette fonctionnalité? Si c'est seulement pour s'assurer que les entrées sont vides, vous pouvez effacer manuellement dans votre contrôleur? Bien que ce comportement serait source de confusion pour l'utilisateur, donc pas vraiment recommandé.
Vérifier ces: stackoverflow.com/questions/32369/... stackoverflow.com/questions/468288/...
C'est probablement va être difficile de donner une très robuste, multi-navigateur, solution d'avenir à l'évolution du comportement du navigateur. Si vous voulez désespérément pour ce faire, vous auriez probablement avoir recours à la création d'un élément d'INTERFACE personnalisé qui ressemble à une boîte de mot de passe à l'utilisateur, mais ne serait pas reconnue par le navigateur en tant que tel. Depuis que vous utilisez Angulaire, vous pourriez probablement faire un personnalisé directive $formateurs, etc. à partir de la ngModelController pour effet le caractère de masquage. Ouais, ça sonne comme un vilain hack, mais je ne pense pas vraiment une bonne solution je ferais confiance.
OriginalL'auteur DannyG | 2015-07-15
Vous devez vous connecter pour publier un commentaire.
https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion
Vous devez également définir
autocomplete="off"
sur votre participation ainsi que votre formulaire.Google Chrome notes de version:
If an author would like to prevent the autofilling of password fields in user management pages where a user can specify a new password for someone other than themself, autocomplete="new-password" should be specified, though support for this has not been implemented in all browsers yet.
M'a fallu un moment pour comprendre pourquoi ça ne fonctionne pas.OriginalL'auteur Preston Van Loon
Je suggère l'utilisation de Javascript pour créer un nombre aléatoire. Passer ce nombre aléatoire à votre Serveur d'Action à l'aide d'un champ caché, puis incorporer ce nombre aléatoire dans les noms de "login" et "mot de passe".
E. g. (pseudo code, la syntaxe exacte dépend de si vous utilisez PHP, jQuery, Javascript, etc.)
Votre serveur lit le "champ" numéro, puis l'utilise pour lire "name_"d'une valeur de nombre et de "pass_"numéro de valeur.
Il ne sera pas question de savoir si l'utilisateur enregistre son mot de passe dans le navigateur, car à chaque fois que l'utilisateur se connecte, le nom et les champs de mot de passe sera différent.
OriginalL'auteur UncaAlby
C'est un super problème gênant pour moi en tant que développeur. Le problème que j'ai, c'est que même si je comprends la colère " pour un utilisateur de ne pas être en mesure de leur navigateur de se souvenir de leur mot de passe et je ne veux pas désactiver cette fonctionnalité totalement, il y a des fois quand je veux le désactiver pour un certain champ de mot de passe. Exemple pour moi, être un " réinitialiser votre mot de passe de boîte de dialogue. Je veux les forcer à avoir à l'entrer à leur ancien mot de passe et puis, bien sûr, tapez le nouveau deux fois. Eh bien, il a été mon expérience que peu importe ce que je nom que les "anciens" saisie mot de passe, il est auto-rempli avec le 'rappeler' mot de passe (dans Firefox 49.0.1 de toute façon). C'est peut-être où je veux en venir c'est mal, mais cela a été mon expérience, il vient de remplit peu importe le fait que cette entrée est le nom est différent de dire 'login' champ de saisie. Le comportement que je vois est fondamentalement que le navigateur semble dire "Cet utilisateur a rappelé un mot de passe pour ce site, alors maintenant, il vous suffit de remplir tous les "input type='mot de passe'" boîte avec ce mot de passe, peu importe le nom. Il me semble que cela devrait être basé sur l'attribut "name", mais pour moi (sur plusieurs sites j'ai travaillé sur) ce juste ne semble pas être le cas.
Ma solution:
onload, onblur, après un délai d'attente, ou si vous voulez le faire, utiliser JQuery ou JS pour définir la valeur de ce champ mot de passe pour rien (vide), puis définissez la couleur du champ de ce qu'il est censé être.
OriginalL'auteur MinnesotaSlim
Puisque vous êtes en utilisant AngularJS, vous pouvez laisser le champ sans nom, et d'accéder aux données qu'il contient par le biais du modèle :
et dans votre fichier javascript :
Testé dans IE10 et Chrome 54
OriginalL'auteur madgangmixers
Ce post est un peu vieux maintenant, mais sincce j'ai trouvé une solution qui fonctionne pour moi (au moins avec la version Chrome 56), je vais partager ici.
Si vous supprimez
name
etpassword
attributs sur votreinput
, puis Chrome ne sera pas vous demander d'enregistrer le mot de passe. Ensuite vous avez juste à ajouter les attributs manquants par le code juste avant la soumission du formulaire:Ensuite en Javascript:
J'espère que cela aidera. Testé sur Chrome 56.
OriginalL'auteur Olivier Levrey
J'ai découvert que Firefox 52.0.2 est incroyablement déterminé à se souvenir de la saisie semi-automatique des valeurs. J'ai essayé presque tout ce qui est suggéré ci-dessus, y compris de changer le nom des attributs à des valeurs aléatoires. La seule chose qui fonctionne pour moi est de configurer les valeurs de "" avec Javascript une fois que le navigateur a eu son chemin avec le formulaire.
Mon cas d'utilisation est la chance que j'ai de ne pas avoir recours à des ruses CSS pour éviter une confusion et/ou ennuyeux flash de complété automatiquement les valeurs d'un formulaire (comme proposé par @MinnesotaSlim ci-dessus) parce que ma forme est cachée jusqu'à ce qu'ils cliquez sur un bouton; il est affiché via un Bootstrap modal. Donc (avec jQuery),
Et j'imagine que vous pourriez être en mesure d'obtenir le même effet en ayant votre formulaire d'abord caché, et dans votre document en charge de l'événement, remplacer manuellement le navigateur et afficher le formulaire.
OriginalL'auteur David