在Zend Framework App中处理成员身份验证和访问

时间:2012-03-01 04:34:58

标签: zend-framework authentication

我正在将遗留的PHP应用程序移植到Zend Framework。它应该是一个facebook应用程序,通过Facebook完成身份验证。在成员通过身份验证后,我有一个与处理成员对象相关的问题。

目前我正在初始化Bootstrap.php中的成员类对象,并将其分配给Zend_Session中的对象。然后,我在任何需要成员对象的地方访问会话进行任何处理(例如在控制器中调用成员模型上的方法并将返回的数据分配给视图对象)

这是推荐的做事方式吗?如果没有,如果有人能指出我正确的方向,我将不胜感激。

萨特雅姆

1 个答案:

答案 0 :(得分:1)

通常,可以使用Zend_Auth和身份验证适配器将您的成员对象存储在Zend_Auth单例的会话存储中,您可以通过(在控制器中)检查/访问:< / p>

$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()){
    $member = $auth->getIdentity();
    $this->view->name = $member->getName(); 
}

身份验证过程本身涉及创建身份验证适配器$adapter,使用用户提供的凭据填充它,并检查结果:

Zend_Auth::authenticate($adapter);

Zend_Auth docs

中的更多详细信息

另外,请注意,如果您有一些需要登录才能访问的模块或控制器,您可以将此检查代码放在带有routeShutdown($request)挂钩的front-controller plugin中。如果请求是受保护的控制器且用户未登录,则重定向到登录页面。只需在boootstrap中注册插件。