ubl / vufind-auth
根据已验证的vufind会话进行用户身份验证
Requires
- typo3/cms: ^8.0 || ^9.0
Requires (Dev)
- mikey179/vfsstream: ^1.4
- namelesscoder/typo3-repository-client: ^1.2
- nimut/testing-framework: ^1.0
- phpunit/phpunit: ^4.7 || ^5.0
README
此扩展使 typo3 能够使用 vufind 进行前端用户身份验证。在登录到目录后,此扩展将读取session-cookie并从vufind-database检索所有必要信息以识别已授权用户,前提是满足要求。
要求
- vufind >= v2
- typo3 >= 8.0.0
- zendframework/zendstdlib >= 3.1
- vufind-database是mysql
- vufind会话存储在数据库中
- typo3安装有权访问vufind数据库
- 一个共享的cookie-domain
准备Typo3
为了使此扩展正常工作,我们需要zendframework/zend-stdlib类可用。因此,我们需要一个自动加载器,在该自动加载器中加载这些类到以下位置:
<PATH_site>/Packages/Libraries/autoload.php
最简单的方法是使用composer安装包,例如:
COMPOSER_VENDOR_DIR="Packages/Libraries" composer require zendframework/zend-stdlib
请注意,您必须手动调整composer.json中的vendor-dir,以保留文件夹以供将来安装。如果您有一个启用了composer的typo3安装,您可能可以使用默认设置。
准备VuFind
首先请注意,您的Typo3主机有权访问VuFind数据库。因此,我们建议为VuFind表session和user创建一个具有限制性规则的单独用户。
数据库作为会话存储
VuFind有一个简单选项将会话数据存储在其自己的数据库中。因此,必须在config.ini
中的Session
部分将选项type
设置为'Database',并保持会话未加密。
[Session] type = Database secure = false
Cookie域名
为了使Typo3能够读取vufind-cookie,我们必须将cookie-domain设置为共享域名值。这是通过Cookies
部分的domain
选项完成的
[Cookies] domain = ".example.edu"
配置扩展
在扩展管理器中配置tx-vufind-auth是必要的。
存储
- pid = 1:这是存储前端用户和组的typo3-pag-id
数据库
- host = localhost:vufind数据库服务器运行的宿主机
- port = 3306:vufind数据库服务器运行的端口号
- name = vufind:vufind数据库名称
- user = vufind:连接到vufind数据库的用户
- pass:vufind数据库用户的密码
会话
- cookiename = PHPSESSID:vufind会话cookie的名称
- lifetime = 3600:会话有效期(见vufind config.ini,
Session
部分,lifetime
选项)
命令行工具
清理用户
在typo3的命令行界面中有一个清理命令,可以从fe_users表中删除过时的用户数据。
请注意,将用户保存到fe_users中的VuFind概念仅取决于Typo3中其他扩展的需求。因此,在应用程序需求和数据经济之间进行良好的计算,考虑到保留受信任的个人数据的风险。
参数
--days int (Default: 60) Amount of days to keep the record of a user since last login.
在后台设置说明
转到调度程序->添加任务
- 在类中选择Extbase-CommandController-Task
- 在频率中指定调度任务应该运行多频繁以及在哪个时间段内运行。(需要秒数或cronjob设置。)
- 在CommandController Command的选择框中,选择VuFindAuth Cleanup: cleanupFrontendUser
- 在下一步保存任务!这对于显示命令行工具的附加参数表单元素非常重要。
- 向下滚动并指定从上次用户登录以来保留记录的天数。默认为60天。
- 再次保存任务!
对于开发问题,也可以在终端上运行该任务。