products.noduplicate登录
Products.NoDuplicateLogin的Python项目详细描述
此pas插件将拒绝同一用户同时登录的多个用户 时间。它确保只有一个浏览器可以在 一次。
实施
实现的工作方式如下:假设anna和karl是两个人 在我们的网站上分享安娜和卡尔的登录信息。安娜登录,验证 第一次。我们为安娜生成一个具有唯一ID的cookie并记住 我们自己的身份证。每次后续验证(即 请求),我们将确保安娜的浏览器有cookie。
现在karl决定用相同的登录名annaandkarl登录到这个站点, 安娜现在经常在网站上冲浪。插件看到卡尔的 浏览器还没有我们的cookie,因此它生成一个具有唯一id的cookie 卡尔的浏览器,记得它,忘记了安娜的饼干。
当安娜点击网站上的链接时会发生什么?插件看到安娜 有我们的cookie,但它与它记忆中的cookie值不同 (卡尔的浏览器有cookie值)。安娜已注销,但插件和 看到消息“有人用你的名字登录”。
用法
此产品在激活时将自动阻止用户保持登录状态 如果他们试图打开第二个会话。这对所有人都很有效 具有credential reset概念的身份验证方案,但是 使用basic auth登录的用户这将无法按预期工作,并且 会话将相互干扰,而不会永久结束会话。 这是基本auth技术的限制,因此建议不要使用 这个插件结合了基本的认证站点。
这个插件还提供了一个revoke_session视图,可以是 访问访问 http://www.example.com/acl_users/no_duplicate_login/revoke_session,其中 站点管理员可以使用它手动调用强制注销 机制。
安装
将Products.NoDuplicateLogin添加到^{tt5}的eggs参数中$ 章节:
[plone] recipe = plone.recipe.zope2instance eggs = Plone ... Products.NoDuplicateLogin
现在运行buildout并重新启动plone。plone启动后,登录并浏览到 Site Setup -> Zope Management Interface -> acl_users并从右上角的下拉菜单中添加No Duplicate Login Plugin。
之后,单击acl用户中的No Duplicate Login Plugin对象 文件夹列表。对于每个Authentication,Credential Update和 Reset Credentials在No Duplicate Login Plugin文件夹中的对象 在列表中,单击,然后将no_duplicate_login插件从 Available Plugins在^{tt15}左侧显示小部件$ 使用中间箭头按钮在右边显示窗口小部件。
您还需要在 Active Plugins显示Authentication和Reset Credentials的列表。
如果使用策略产品将此安装为部署的一部分 可以通过包含空的^{tt20}来执行这些操作$ 档案目录中的档案。
历史记录
2.0(2014-11-25)
- 安全和性能改进[Matthewwilkes]
- 删除plone.session[matthewwilkes]的重新实现
- 更改内部数据结构以避免不必要的对象存储[matthewwilkes]
- 将测试添加到测试线束[Matthewwilkes]
- 修复纯zope兼容性[matthewwilkes]
1.0A2(2011年2月18日)
- 添加更多安装说明
1.0A1(2010年12月17日)
- 添加测试线束[aclark]
- 去掉“实验”会话存储,zodb冲突太多。[标记]
- plone 4 compat[aclark]
- 重新包装为鸡蛋[aclark]
1.0 SVN/偏差
- plone 3 compat[佩里托]
- 原始实现[nouri]