Zend_Auth 最佳实践
我的目标是要求某些页面登录.我正在使用 Zend Framework MVC,并且正在尝试查找有关最佳实践的示例.
My goal is to require login for certain pages. I am using Zend Framework MVC, and I'm trying to find examples regarding best practices.
关于我正在寻找的内容的一些说明:
Some notes on what I'm looking for:
- 我希望未登录的用户获得一个登录框,然后在通过身份验证后返回到登录版本的页面
- 我想使用依赖注入,避免单例
- 代码占用空间小 - 与 Zend mvc 结构相结合
- 登录框应该是一个单独的控制器并进行标头重定向吗?认证成功后如何返回登陆页面?简单地调用登录控制器操作以在登录页面中显示登录框的想法,或者这是否是搜索引擎索引的缺点?
- 能够使用外部库来处理 cookie
或者完全不同的东西.我对 Zend 框架还很陌生,我想以正确的方式"来做.
Or something completely different. I'm fairly new to the Zend framework, and I want to do it 'the right way'.
推荐答案
- 我想让非登录用户得到一个登录框,然后返回到登录状态在页面的版本中,一次已认证
使用 FrontController 插件 并重定向或转发它们到您的登录操作.
Use a FrontController plugin and redirect or forward them to your loginAction.
- 我想使用依赖注入,避免单例
Zend 框架,目前不提供任何 DI 系统,但是 Zend_Application_Resource_* 实际上取代了它.这里需要什么样的依赖?
Zend Framework, doesn't currently ship any DI system, however, the Zend_Application_Resource_* actually replace it. What kind of dependency would you need here?
- 代码占用空间小 - 与 Zend mvc 结构相结合
这取决于你.
- 登录框应该是一个单独的控制器并进行标头重定向吗?如何认证后返回登陆页面成功?一个简单地调用的想法登录控制器操作以显示登陆页面中的登录框,或者这是搜索的缺点引擎索引?
我主要使用一个特殊的 AuthController
和 LoginAction
&注销操作
.为了将用户重定向到试图查看的页面,我总是在我的表单中添加一个 returnUrl
元素,并注入请求的 URL 的值以便能够重定向用户,如果没有,我将他重定向到索引/仪表板,这取决于.
I mostly use a special AuthController
with LoginAction
& LogoutAction
. To redirect the user to the page is was trying to view, I always add a returnUrl
element in my forms, and I inject the value of the requested URL to be able to redirect the user, and if none, I redirect him to the index/dashboard, depends.
- 能够使用外部库来处理 cookie
Zend_Auth 允许您设置您的 自己的存储机制,所以只需要实现接口即可.
Zend_Auth allows you to set your own storage mechanism, so just implement the interface.
$auth = Zend_Auth::getInstance();
$auth->setStorage(new My_Auth_Storage());
但是从不将身份验证结果存储在 cookie 中,修改它并访问您的网站非常容易.
But never store authentication result in a cookie, it's so easy to modify it and access your website.
您还可以查看我的一个之前的答案.
You may also take a look to one of my previous answer.
相关文章