2011-12-27 8 views
0

sfGuardとsfGuardをPropelで使用し、これが私の最初のsymfonyの経験であると考えても、私はアーキテクチャのいくつかの部分でまだ全面的な知識を持っています。sfGuardでユーザ資格情報を検証する

私はいくつかのウェブサービスの作成を依頼されましたが、その1つはユーザー(電子メール)とパスワードを取って、結果としてjson文字列のフィードバックを出力するものです。

私はsfGuardでこのようなタスクを実行する方法についての手掛かりを持っていないので、誰かが例を持っていればそれを感謝します。

私はsf_guard_userテーブルに私はsfGuardValidatorUserクラスを見て

id username    algorithm salt       password         created_at    last_login    is_active is_super_admin 
4 [email protected] sha1 623de866b49c696b452e0d12b55895c8 dcbe87a60a769b9e3b5f0988141b824fa5206235 2011-12-06 02:32:43  2011-12-27 15:49:41  1   0 

答えて

0

[OK]を、私は汚いトリックを見つけたが、それは動作します。私は、これは同じどっちつかずの状態で立ち往生誰かを助けることができることを願ってい

 $request->setParameter('signin', array(
       'username' =>$request->getParameter("username"), 
       'password' =>$request->getParameter("password"), 
      )); 
     $form = new BeetleLoginForm(); 
     $form->bind($request->getParameter('signin')); 
     if ($form->isValid()) { 
      $values = $form->getValues(); 
      $this->getUser()->signin($values['user'], false); 
      $resp['return'] = "YES"; 
      $resp['message'] = "You have successfully logged in"; 
      return $this->renderText(json_encode($resp)); 

     } 

私はそれのようなものとなり、通常のログインパタパタ、に偽のログインフォームの提出とsitckことができます。

+0

あなたはリクエストを必要としません。バインドメソッドのために配列を使用してください。 –

1

のような行を見つけたので、アルゴリズムは、SHA1であるべきだと思います。指定されたユーザー名を持つユーザーは、それがその後、checkPasswordを使用してパスワードをチェック(is_activeフィールド)

  • 2.もしアクティブかどうかをチェック
  • 1.場合に存在する場合

    1. チェック: は、基本的にはこのようなものですsfGuardUserクラスからパブリックメソッド(デフォルトはsha1(db_salt.submitted_password) == db_passwordのようなものである)
  • 関連する問題