2013-08-03 2 views
7

プログラムでログイン機能を実装しました。symfony2でプログラム的に私を覚えていますか?

このコードは以下の通りです:この後

$token = new UsernamePasswordToken($user, $user->getPassword(), 'main', $user->getRoles()); 
$this->get('security.context')->setToken($token); 

$event = new InteractiveLoginEvent($this->getRequest(),$token); 
$this->get('event_dispatcher')->dispatch('security.interactive_login', $event); 

、私は私を覚えてどのように実装するのですか?

(私はフォームの使い方を知っていますが、私はプログラム的に私を覚えています。 )

助けてください...

+0

一般的な画像については、[この質問](http://stackoverflow.com/questions/549)をチェックしてください。 – HamZa

答えて

8

RememberMeToken

$key = $this->getParameter('secret'); // your security key from parameters.yml 

$token = new RememberMeToken($user, 'main', $key); 
$this->get('security.context')->setToken($token); 
+0

私はFacebookのログインをしようとしています。 これはログインしますが、クッキーは作成しません。 '$ token = new RememberMeToken($ user、 'default'、$ this-> getParameter( 'secret')); ます$ this-> GET( 'security.token_storage') - > setToken($トークン); '私のsecurity.ymlで : 'セキュリティ: ファイアウォール: デフォルト: remember_me: キー:「%の秘密% ' 生涯:31536000 always_remember_me:true' – SebCar

0

一意のIDを持つクッキーを作成できます。このクッキーをデータベースに保存し、新しい訪問者がサイトにアクセスするたびにこのデータベースをチェックします。ユーザーがデータベースに格納されている場合は、この情報を格納する列を追加することをお勧めします。ところで、FOSUserBundleを見てみましょう。

1

私は同じ問題がありました。UsernamePasswordTokenの代わりにRememberMeTokenを使用してください。

クラスパラメータはUsernamePasswordTokenと非常に似ていますので、詳しくは触れません。

0

を使用してみてください私はforgottenbasが示唆したように同じ方法を使用しますが、エラーが発生しました。

$key = $this->container->getParameter('secret'); 

$token = new RememberMeToken($user, 'user_area', $key); 
$this->get('security.context')->setToken($token); 

$のユーザーが自分のUserクラスのインスタンスであると「user_areaは」私のファイアウォールの名前です:私はの$ this - >コンテナ(Symfony2の)を使用する必要がありました。

関連する問題