ホームページ >バックエンド開発 >PHPチュートリアル >Symfony に登録した後にユーザーを自動的にログインするにはどうすればよいですか?

Symfony に登録した後にユーザーを自動的にログインするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-29 00:08:11360ブラウズ

How to Automatically Log In Users After Registration in Symfony?

Symfony への登録後の自動ユーザー認証

アカウントの作成時には、ユーザーにユーザー情報の提供を要求するのではなく、自動的にログインすることが望ましいです。資格情報をもう一度。 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.
    }
}

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));
    }
}

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
    }
}

プロジェクトの特定の設定に従ってこのコードを変更する必要があります。これらの手順を実装すると、登録プロセスの完了後にユーザーが自動的に認証されるようになります。

以上がSymfony に登録した後にユーザーを自動的にログインするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。