ilc*_*lce 12 session bootstrapping zend-framework login
那么,问题是如何在我的模块中配置Module.php来检查用户是否在会话中?如果他不是我想将他重定向到登录页面.
如果用户不在会话中(未登录),我不希望用户有权继续执行其他操作(控制器).
这应该通过ZF2中的事件来完成更多细节:点击此处此代码也可以帮助您.http://pastebin.com/FFGVCpki
public function init() {
// Attach Event to EventManager
$events = StaticEventManager::getInstance ();
// Add event of authentication before dispatch
$events->attach ( 'Zend\Mvc\Controller\AbstractActionController', 'dispatch', array (
$this,
'authPreDispatch'
), 110 );
}
public function authPreDispatch($event){
$target = $event->getTarget ();
$serviceLocator = $target->getServiceLocator();
// Do what ever you want to check the user's identity
$url = $event->getRouter ()->assemble ( array (
"controller" => "<controller>"
), array (
'name' => '<route name>'
) );
$response = $event->getResponse ();
$response->setHeaders ( $response->getHeaders ()->addHeaderLine ( 'Location', $url ) ));
$response->setStatusCode ( 302 );
$response->sendHeaders ();
exit ();
}
Run Code Online (Sandbox Code Playgroud)
不使用重定向,使用'route'事件执行setParam()方法,请参阅https://github.com/samsonasik/SanAuthWithDbSaveHandler/commit/e2ae4dfcebb7a952d7b1adaadcf6496c994423b9
| 归档时间: |
|
| 查看次数: |
6804 次 |
| 最近记录: |