Maison > développement back-end > tutoriel php > Comment connecter automatiquement les utilisateurs après l'enregistrement dans Symfony ?

Comment connecter automatiquement les utilisateurs après l'enregistrement dans Symfony ?

Susan Sarandon
Libérer: 2024-11-29 00:08:11
original
331 Les gens l'ont consulté

How to Automatically Log In Users After Registration in Symfony?

Authentification automatique des utilisateurs après inscription dans Symfony

Lors de la création d'un compte, il est souhaitable de connecter automatiquement les utilisateurs plutôt que de leur demander de fournir leur à nouveau les informations d'identification. Voici comment y parvenir dans Symfony :

Symfony 4.0

use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use YourNamespace\UserBundle\Entity\User;

class LoginController extends AbstractController
{
    public function registerAction()
    {
        $user = //Handle getting or creating the user entity likely with a posted form
        $token = new UsernamePasswordToken($user, null, 'main', $user->getRoles());
        $this->container->get('security.token_storage')->setToken($token);
        $this->container->get('session')->set('_security_main', serialize($token));
        //The user is now logged in, you can redirect or do whatever.
    }
}
Copier après la connexion

Symfony 2.6.x - Symfony 3.0.x

use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use YourNamespace\UserBundle\Entity\User;

class LoginController extends Controller
{
    public function registerAction()
    {
        $user = //Handle getting or creating the user entity likely with a posted form
        $token = new UsernamePasswordToken($user, null, 'main', $user->getRoles());
        $this->get('security.token_storage')->setToken($token);
        $this->get('session')->set('_security_main', serialize($token));
    }
}
Copier après la connexion

Symfony 2.3.x

use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use YourNamespace\UserBundle\Entity\User;

class LoginController extends Controller
{
    public function registerAction()
    {
        $user = //Handle getting or creating the user entity likely with a posted form
        $token = new UsernamePasswordToken($user, null, 'main', $user->getRoles());
        $this->get('security.context')->setToken($token);
        $this->get('session')->set('_security_main', serialize($token));
        //Now you can redirect where ever you need and the user will be logged in
    }
}
Copier après la connexion

Vous devrez modifier ce code en fonction de la configuration spécifique de votre projet. En mettant en œuvre ces étapes, vous pouvez vous assurer que les utilisateurs sont automatiquement authentifiés une fois le processus d'inscription terminé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal