我正在创建一个插件在我的网站,在那里登录用户可以查看他们的电子邮件。我正在开发的电子邮件服务器是Zimbra。到目前为止,我已经能够使用PHP的imap_open函数成功地获取和显示用户电子邮件:
imap_open($server, $email, $password)当用户单击网站上的电子邮件链接时,用户将被导航到zimbra客户端。然而,用户将不得不再次输入他们的登录凭据。我已经检查了浏览器的cookie信息,并注意到当用户登录时,Zimbra设置了cookie,ZM_AUTH_TOKEN,:我相信Zimbra使用这个cookie来检测用户是否已经登录。本质上,我的任务是消除重新登录的额外步骤;如果有开源解决方案,我也想知道这些。
发布于 2013-04-05 20:06:27
您可以在这里查看正式文档:
http://wiki.zimbra.com/index.php?title=Preauth
发布于 2013-03-12 04:26:21
这是解决方案的一半--对不起,我从未用Zimbra编程,但我已经在php项目中多次实现了单点登录。
您的域和zimbra the服务器的域是否相同?如果他们是,你可以看到和操纵对方的饼干。尝试找到处理登录并设置cookie的zimbra代码。然后编写一个小的web服务网页,并将其放在zimbra服务器上,该服务器调用该代码并返回cookie令牌。然后,当用户登录时,您的网站可以在幕后为Zimbra做一个卷曲,获取cookie的令牌内容,然后设置适当的cookie,以便将它们登录到zimbra中。我使用一个只有我的插件网站知道的密码来保护web服务网页。
如果它们不是相同的域,您仍然可以这样做。但是,您必须在客户机上使用框架或JavaScript,而不是通过服务器上的curl来完成这一任务。此外,保护登录web服务的简单密码将无法工作,因为浏览器正在访问它,每个人都可以看到密码。您必须使密码更安全,就像用预定义的秘密哈希他们的电子邮件地址(假设这在两个服务器上是相同的)。
https://stackoverflow.com/questions/15187055
复制相似问题