web-dev-qa-db-fra.com

Comment obtenir une connexion unique pour tous les utilisateurs?

Je veux envoyer une connexion unique pour tous les utilisateurs, donc j'utilise drush uli et j'obtiens un lien comme:

http://html/user/reset/1/1509979615/VBPx_FMfKeJUEt1moVcsSQGUMX_tFUSYEdEfRlmq7eA

Donc, si l'utilisateur 5 souhaite utiliser une connexion unique, celle-ci sera utilisée uniquement pour l'utilisateur 1, n'est-ce pas? Fondamentalement, je veux définir une connexion unique pour tous les utilisateurs.

Comment passer cette URL dans Drupal 8?

Je veux juste savoir comment utiliser cela dans un e-mail de mot de passe oublié.

3
Panda

drush

Pour obtenir une connexion unique pour l'utilisateur spécifique, utilisez cette syntaxe:

drush uli <user>

<user> Est soit uid (par exemple 5), Nom d'utilisateur ou adresse e-mail de l'utilisateur.

Pour obtenir une URL de connexion unique pour plusieurs utilisateurs ou tous, vous devez exécuter drush dans la boucle, par exemple.

for uid in $(drush sqlq "SELECT uid FROM users"); do drush uli $uid; done

Exécutez drush help uli Pour obtenir de l'aide sur la syntaxe.

Pour corriger votre partie http://html, Ajoutez le paramètre -l http://example.com Ou définissez votre $base_url Dans votre fichier de paramètres.

Code personnalisé

Si vous souhaitez envoyer une connexion unique par e-mail à l'aide de Drupal, vous pouvez utiliser la fonction user_pass_reset_url() dans votre code personnalisé.

Génère une URL unique permettant à un utilisateur de se connecter et de réinitialiser son mot de passe.

Module Contrib

Ou utilisez Connectez-vous une fois module (pour D8, vérifiez cela problème ).

Connexion unique permet d'envoyer des liens de connexion uniques aux utilisateurs par e-mail.

5
kenorb

Si vous souhaitez forcer tous vos utilisateurs à se connecter via des liens de connexion uniques à tout moment, vous pouvez utiliser le module sans mot de passe .

Si vous définissez $ base_url dans votre fichier settings.php, la commande Drush user-login générera l'URL correcte dans la sortie. Vous pouvez ensuite écrire un script simple pour envoyer un e-mail à chaque utilisateur avec son propre lien de connexion unique.

Il n'y a pas de commande Drush pour envoyer par e-mail un lien de réinitialisation de mot de passe à un utilisateur, mais il y a bien sûr Drupal le fait sur la page de demande de mot de passe. Vous pouvez utiliser le module utilisateur comme guide et écrire un module simple ou une commande Drush pour réinitialiser en masse tous les utilisateurs.

3
greg_1_anderson

Dans la version Drush> 9, il devrait être

drush uli --name=USERNAME

remarquez jetez un œil à un chiffre après reset/{UID}/ is devrait être l'ID de l'utilisateur que vous avez essayé de réinitialiser

dans votre cas user/reset/1/ il réinitialisait évidemment le mot de passe pour celui utilisé.

Donc, si vous voulez le faire pour tous les utilisateurs, exécutez la commande suivante dans votre terminal:

for name in $(drush sqlq "SELECT name FROM users"); do drush uli --name=$name; done
2
Yusef