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