Sabre CalDAV对接iCloud日历的Apache认证及插件配置问题
实现Sabre Apache认证后端的配置步骤
你当前代码默认使用PDO作为认证后端,要切换为Sabre\DAV\Auth\Backend\Apache完成认证,按以下步骤操作即可:
- 修改server.php认证后端实例化代码
将原代码中:
$authBackend = new DAV\Auth\Backend\PDO($pdo);
替换为:
// Apache认证后端不需要传入PDO实例,直接读取Apache传递的认证信息 $authBackend = new DAV\Auth\Backend\Apache();
其余原有代码的CalDAV、ACL等插件配置不需要修改,认证通过后插件会自动获取用户身份关联对应日历数据。
- 配置Apache侧的HTTP认证规则
在你站点的虚拟主机配置或者/sabre/目录下的.htaccess文件中添加以下配置,开启HTTP Basic认证:
AuthType Basic AuthName "CalDAV Auth" # 替换为你实际存放htpasswd账号密码文件的绝对路径 AuthUserFile /var/www/your_project/.htpasswd Require valid-user # 如果使用PHP-FPM模式,需要加下面这行确保认证信息传递给PHP SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
你可以用htpasswd命令生成账号密码文件:htpasswd -c /var/www/your_project/.htpasswd 你的登录账号
配置完成后先访问/sabre/server.php路径,会弹出认证框,输入你设置的账号密码能正常进入Sabre的Web前端就说明认证配置成功,之后可继续完成剩余的CalDAV对接逻辑。如果需要对接iCloud日历作为同步源,后续在应用逻辑中添加iCloud CalDAV代理同步规则,引导用户输入iCloud账号和专用应用密码完成关联即可。
内容的提问来源于stack exchange,提问作者justAsk
相关产品推荐
相关产品推荐

