ホームページ > バックエンド開発 > PHPチュートリアル > Symfony アプリケーションに登録後の自動ログインを実装するにはどうすればよいですか?

Symfony アプリケーションに登録後の自動ログインを実装するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-19 14:04:02
オリジナル
716 人が閲覧しました

How to Implement Automatic Post-Registration Login in Symfony Applications?

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));
    }
}
ログイン後にコピー

Symfony 2.6.x - 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));
    }
}
ログイン後にコピー

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート