- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Zend_Auth 来验证用户,然后将他们的详细信息存储在默认的 Zend_Auth session 中。这意味着当用户编辑他的详细信息时,这些更改不会反射(reflect)在应用程序中,直到他重新进行身份验证。
我想这样避免这个问题:
用户 ID
存储在 Zend_Auth
session 中在每个请求中,我们使用 preDispatch()
Hook 从数据库中获取用户的详细信息,使用登录时存储在 中的
session :user ID
code>Zend_Auth
class Plugin_Auth extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
if ($auth->hasIdentity())
{
$id = $auth->getIdentity()->id;
$userModel = new Model_User();
$user = $userModel->fetchOne($id);
// Where do I store this user object ???
}
}
}
问题是:我在哪里存储这个 User
对象?我认为我们不应该为此使用 session ,因为 session 的目标是持久化数据。不过不需要持久化,因为我们会在每次请求时从数据库中重新获取数据。只有 user ID
必须是持久的。将 User
对象存储在 Zend_Registry
中是这里的一个选项吗?
最佳答案
我认为示例是解释如何将新的身份验证详细信息写入 Zend_Auth 存储对象的最佳示例:
$userDetails = array('foo' => 'bar');
$storage = new Zend_Auth_Storage_Session();
// set sorage for Zend_Auth
Zend_Auth::getInstance()->setStorage($storage);
// write data to the storage
Zend_Auth::getInstance()->getStorage()->write($userDetails);
// read data from storage
var_dump(Zend_Auth::getInstance()->getStorage()->read());
// edit user's data
$userDetails = array('foo' => 'bar', 'foo', 'bar');
// write new data to storage
Zend_Auth::getInstance()->getStorage()->write($userDetails);
// read new written data from storage
var_dump(Zend_Auth::getInstance()->getStorage()->read());
我认为这解释了如何设置 Zend_Auth 存储,并在以后更改它。
关于zend-framework - 编辑用户后更新 Zend_Auth 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13604267/
我的目标是要求某些页面登录。我正在使用 Zend Framework MVC,我正在尝试寻找有关最佳实践的示例。 关于我正在寻找的东西的一些注释: 我希望未登录的用户获得一个登录框,然后在通过身份验证
我尝试使用: // do login if request is posted if (isset($_POST) && !empty($_POST)) { // do authencatio
我使用 Zend_Auth 和 setCredentialTreatment 来设置散列方法和盐。我看到所有示例都在做类似的事情,其中 salt 似乎作为文本插入。 ->setCredential
我还遇到了另一个关于 Zend 的奇怪烦人的事情。 基本上,我在创建用户域后有以下代码: $this->auth = Zend_Auth::getInstance(); $this->view->us
这很简单。我写的 $auth->getStorage()->write($user); 然后我想在一个单独的过程中加载这个 $user,但我不能,因为 $user = $auth->getIdenti
我想创建 Zend_Auth 的多个实例上课,因为我有两个模块 管理员 前台 发生的事情是当我登录管理员时,它会自动登录 正面或反之。 我想要的是在同时认证后分别在两个模块中工作。 最佳答案 Zend
谁知道为什么我的Zend_Auth在特定时间到期,我该如何设置/延长它? 最佳答案 $seconds = 3600; //one hour $namespace = new Zend_Session_
我正在处理我在 Zend Framework 中的第一次用户登录,但我对 Zend_Auth 有点困惑。我阅读的所有关于它的文章都直接在 Controller 中使用它。但对我来说,作为插件工作更有意
给专业人士的一个简短问题。 是否可以将 Zend_Auth_Adapter_DbTable 与 ZendX_Db_Adapter 一起使用? 我试过这个: $adapter = new Zend_Au
我使用 Zend_Auth 来验证用户,然后将他们的详细信息存储在默认的 Zend_Auth session 中。这意味着当用户编辑他的详细信息时,这些更改不会反射(reflect)在应用程序中,直到
专家, 我刚刚发现 Zend_Auth 的一个奇怪行为,即它无法在服务器中存储 session 。我所有使用 Zend_Auth 进行身份验证的现有应用程序都会突然发生这种情况,所以我确定代码没有问题
有没有办法让 Zend_Auth 接受不区分大小写的身份(即用户名)? Zend_Auth 似乎提供了一种方法来为凭证字段添加特殊处理,但不为身份字段添加特殊处理。 PS:我正在使用指向 Postgr
我正在使用一个简单的 Zend_Auth设置为我的一个应用程序验证用户,使用 controller plugin 中的 preDispatch() 方法检查.当匿名用户导航到 /users/view/
当我的用户登录时,我会在 UI 上显示他们的详细信息(姓名、电子邮件)。当他们更新个人资料时,我想显示更新的详细信息,而不需要用户注销并重新登录。 UI 详细信息通过 View 助手从 Zend_Au
我将如何全局保护我的所有 Controller (我的登录 Controller 除外)以确保我的应用程序在所有点都是安全的(没有隐藏的 ajax 调用后门等)。我想我可以把它放在我的 Bootstr
上下文: 我的问题与我正在开发的论坛非常相似,其中有: 有权查看话题但不能回复或投票的客人 成员有足够的代表,可以编辑/投票其他主题,默认情况下他们可以回复并拥有与访客相同的权限 几乎无所不能的管理员
我正在使用 zend 1.11 框架和doctrine。我正在发送下面的 ajax 请求来填充下拉列表等...但是一旦 session 过期,我将在 Controller 的每个操作中重定向到登录页面
我在我的一个项目中使用 Zend_Auth,但到目前为止还没有弄清楚如何设置 session 的生命周期,或者如何扩展它(假设它应该运行 5 分钟,并且应该在用户使用时重置为做一个 Action ),
我想用 Zend_Auth 和 Zend_Session 来保存用户 session 和登录信息 什么是实现以下项目的最简单和最好的方法: 1-Disallow multiple concurrent
我正在处理我在 Zend 中的第一次用户登录,但我对 Zend_Auth 有点困惑。我阅读的所有关于它的文章都直接在 Controller 中使用它。但对我来说,在我的用户模型中使用它更有意义,这样每
我是一名优秀的程序员,十分优秀!