Session 如何检查用户是否已登录Symfony?

Session 如何检查用户是否已登录Symfony?,session,symfony1,symfony-1.4,Session,Symfony1,Symfony 1.4,我正在为我的最后一年项目创建一个工作门户。在那里我需要把会话当求职者申请一个特定的空缺,当他/她点击“申请”按钮检查用户是否登录系统。如果他已登录,用户可以继续申请并上传简历。否则,他必须注册到一个系统,当点击应用页面应该重定向到注册页面。那我怎么能用symfony来做呢? 是否可以在“应用”按钮中执行此会话部分。。我对symfony不太熟悉。。请帮助您在sfBasicSecurityUser中有一个函数,它告诉您: 在将用户重定向到登录系统之前,您可以存储referer: 如果可以,使用来处理

我正在为我的最后一年项目创建一个工作门户。在那里我需要把会话当求职者申请一个特定的空缺,当他/她点击“申请”按钮检查用户是否登录系统。如果他已登录,用户可以继续申请并上传简历。否则,他必须注册到一个系统,当点击应用页面应该重定向到注册页面。那我怎么能用symfony来做呢?
是否可以在“应用”按钮中执行此会话部分。。我对symfony不太熟悉。。请帮助

您在sfBasicSecurityUser中有一个函数,它告诉您:

在将用户重定向到登录系统之前,您可以存储referer:

如果可以,使用来处理用户管理(用户、组、权限、登录、注册等)

编辑:

因此,在登录操作中,您添加了如下内容:

// store the referer url in the session for a future use, if it's doesn't already exists
if($this->getUser()->getAttribute('referer_url', null, 'login'))
{
  $this->getUser()->setAttribute('referer_url', $request->getReferer(), 'login');
}
// in action<br>
$this->getUser()->setAttribute('user', $user);
// in action
$this->getUser()->getAttribute('user');
在您的登录操作中:

// retrieve the referer in session, otherwise the one in request, otherwise redirect to homepage
$signinUrl = $this->getUser()->getAttribute('referer_url', $request->getReferer(), 'login');
$this->getUser()->getAttributeHolder()->remove('referer_url');

return $this->redirect('' != $signinUrl ? $signinUrl : '@homepage');
编辑2:

如果需要自定义重定向,请在重定向到登录页面之前设置:

$this->getUser()->setAttribute('referer_url', 'my/custom/url', 'login');

如果像这样手动存储用户会话:

// store the referer url in the session for a future use, if it's doesn't already exists
if($this->getUser()->getAttribute('referer_url', null, 'login'))
{
  $this->getUser()->setAttribute('referer_url', $request->getReferer(), 'login');
}
// in action<br>
$this->getUser()->setAttribute('user', $user);
// in action
$this->getUser()->getAttribute('user');

然后您可以检查用户对象的存在

在我的vacancySucess页面中,我使用了一个链接来应用job yes,将你的操作定义为
applyVacancy
as,然后如果你的用户没有登录,他将被重定向到登录页面。在我的applyVacancy操作类中,我放置了if($request->isMethod('post'){$this->form bind($request->getParameter('Spacement')),$request->getFiles('outpose');if($this->form->isValid()){$file=$this->form->getValue('file');$filename=sha1($file->getOriginalName())。$file->getExtension($file->getoriginalextenstension());$file->save(sfConfig::get('sfConfig'sfu upload_dir')。$filename);$this->重定向('outposition/listallpause'));因此,在执行该部分之前,我需要纠正重定向部分的错误?因为从上面的代码中,我曾经上传过简历。因此,我需要将applyVacancy:is_secure:true credentials:ROLE_USER_HOME_PAGE放在side security.yml PAGE中。如果您使用is_security,您不必关心重定向,symfony会将其交给您自动将其删除。