Email Joomla用户配置文件中电子邮件更改后的用户电子邮件激活
今天我面临以下问题:Email Joomla用户配置文件中电子邮件更改后的用户电子邮件激活,email,joomla,activation,joomla1.6,Email,Joomla,Activation,Joomla1.6,今天我面临以下问题: 我在Joobla 1.6网站上注册了一个新用户 通过激活电子邮件中的链接激活帐户 以新用户身份登录后,我已将电子邮件更改为虚构的(foo@bar.bar) Joomla的反应是:“好的,没问题,电子邮件似乎没问题,那就保存吧” Joomla检查的唯一两件事是电子邮件是否编写正确,以及是否由其他用户使用 为什么Joomla不将相同的激活电子邮件添加到新电子邮件中,以便在用户配置文件中更改它?有什么我应该知道的吗 这看起来好像在概要文件编辑组件中缺少了非常重要的功能 如何在不编
我写了一个插件来解决这个问题:激活电子邮件就是这样一种激活方法。这是为了满足像美国这样的国家的用户信息收集法律,在这些国家,用户注册时需要确认他们拥有“此”电子邮件地址。这确保了他们自己就是签署这些协议的人。这就是激活电子邮件的目的。如果您想找到一种解决方法,请尝试以下方法: 编写自己的使用事件的身份验证插件。在这里,您可以检查用户在更改电子邮件地址时是否正确验证电子邮件 如果您想要,您可以停用用户的帐户,然后向他们发送一封带有链接的新激活电子邮件。查看com_用户代码,了解如何在新用户注册和发送激活电子邮件方面处理注册。你几乎可以从那里复制代码 插件的示例代码:
onBeforeStoreUser($user, $isnew) {
if (!$isnew) {
// grab code from com_users to generate activation email
// part of the code makes an activation sequence
// sql to inject this seq into the users account
$db = JFactory::getDBO();
$db->setQuery('
UPDATE #__users
SET activation = '.$db->quote($activation_code)).'
WHERE id='.$user->id.'
);
$db->query();
// send activation email
}
}
也许在使用新的邮件帐户之前,验证旧的邮件帐户也是一件好事 说明: 我得到了一个用户和密码,我登录,我把邮件从真正的所有者改为我的,我偷了这个帐户,现在可以用我的邮件激活它
如果我们同时验证旧邮件和新邮件,我们将确保新邮件有效,并且更改是原所有者要求的。我不同意。确保某人输入的电子邮件实际上是该人拥有的有效电子邮件非常重要。当您在个人资料中更改电子邮件时,无需发送电子邮件进行检查,您就可以假装是其他人。任何这些都适用于您网站上用户的上下文。例如,如果用户的最佳利益是确保他们的电子邮件是正确的,例如,他们在gumtree上发布了一些东西,然后将“愚蠢”留在错误的地址。另一方面,如果您是PayPal,那么对于安全措施,您希望电子邮件验证达到这种程度。我上面的回答适用于Joomla,他赋予管理员遵守有关电子邮件激活的法律的能力。在任何情况下,请参阅我的另一个答案:)尝试覆盖“更改电子邮件”功能,以便它取消对用户的确认,这样用户就需要验证电子邮件。这是一个核心攻击。我很震惊,我不能接受这个。此外,它还需要另一个新的激活令牌表。非常感谢@WooDzu的插件。非常有帮助。谢谢马丁,到时候我会试试的。嗯,停用用户帐户似乎不是一个好办法,尽管这可能是插件的参数之一。顺便说一句,如果我写了这个插件,我会把它发布到互联网上。的确,停用用户是不好的,但是除了确保用户验证他们的新电子邮件地址,还有什么替代方法呢?我以前见过Joomla不发送激活电子邮件的问题,所以这可能是您需要注意的问题。我正在考虑在用户激活新电子邮件时留下旧电子邮件。暂时,激活令牌和新电子邮件都会存储在jos_users->activation列中,因为我不想为此创建新表。您好,我已经开始开发插件。最后要做的一件事是激活一封已存储在用户参数中的新电子邮件,用户将获得一个激活链接。我遇到了如何将激活令牌传递回插件的问题。你不能查询数据库以获取激活令牌吗?我建议你问一个新问题,因为你上面的评论有点模糊。然后把你的新问题的链接贴在这里,这样人们在需要同样的东西时可以关注它。我也会看看你的问题的答案。嗨,韦勒。我没想过这个,但我真的很喜欢这个主意。谢谢