1

symfony ベースのアプリケーションで Web サービスを開発しようとしています。sfguarduser プラグインを使用しています。シングル ショット リクエストで認証されたユーザー資格情報を取得して、ユーザーのアクセス許可を確認し、Web サービス アクションを実行したいのですが、実行する方法はありますか? HTMLフォームログインなしのログインアクション?

4

1 に答える 1

5

アクションで次のことを行います。

$this->getUser()->signin($sfGuardUserObject);

sfGuardUser のオブジェクトで呼び出す必要があります。このコードをモジュールの preExecute() メソッドに入れて、各リクエストをチェックできます。

「アカウントのアクティブ化」アクションを行っていたときに、似たようなことをしました。アカウント作成後にトークン付きのメールが送信され、サイトへのリンクが含まれています。トークンは URL で送信され、アクションへのルートで照合されます。アクションは、ユーザーがそのトークンを持っているかどうかを確認し、ユーザーをログインさせます。これが私がしたことです:

public function executeActivate(sfWebRequest $request)
{
  // if token is not present, forward to 404
  $this->forward404Unless($request->getParameter('token'), 'page', 'index');

  $this->profile = sfGuardUserProfilePeer::activateProfileByToken($request->getParameter('token'));

  // if someone was activated, return the mobile activation form and success page
  if (!$this->profile)
  {
    $this->redirect404();
  }

  // sign the user in
  $this->getUser()->signin($this->profile->getsfGuardUser());

  // set the $user variable for the template
  $this->user = $this->profile->getsfGuardUser();

}

それが役に立てば幸い。

于 2010-12-31T11:44:21.053 に答える