0

我有网络应用程序,并且在我的网络应用程序中可以更改电子邮件,如果用户更改他们的电子邮件,这就是效果

  1. 更改电子邮件后将自动注销,我将激活码发送到新电子邮件。
  2. 如果用户尝试在未激活的情况下使用新电子邮件登录,则会显示错误,因为电子邮件未激活。
  3. 当用户更改他们的电子邮件时,在我的数据库中,电子邮件被他们的新电子邮件更改,并且我将用户的状态从 1 更改为 0,1 是活动用户 0 正在等待激活。如果状态为 1 用户可以登录,但如果状态 0 用户无法登录。使用已发送给新电子邮件用户的代码激活可以从 0 到 1 状态激活并且可以正常登录。

问题是 :

  1. 如果用户的新邮箱是假的或无效的,用户将无法再次登录。

你有什么建议来解决这个问题?

感谢您的回答。

4

4 回答 4

1

仅在他们单击激活码/链接后更改电子邮件地址(您在步骤 3 中所做的操作)。

于 2012-09-27T11:48:10.687 回答
0

我会用下一个结构创建一个名为 user_emails 的附加表:

email_id
email
user_id
current_active
date_added

从用户表迁移电子邮件数据。
然后,我会更改我的应用程序以在需要获取用户电子邮件的地方使用这个新表。
并在用户表中删除字段电子邮件。

在此之后,您可以支持一个用户的多封电子邮件,这有很多原因。

user_emails 表中的字段 current_active 需要为某些电子邮件设置为活动,只要用户没有确认新电子邮件。
确认后,只需将旧电子邮件 current_active 设置为 0,将新电子邮件设置为 1,然后在需要用户电子邮件的地方使用该条件。

于 2012-09-27T11:55:13.837 回答
0

不要自动注销它们。如果您愿意,您已经可以重新生成会话 ID,但是我认为这不需要任何注销。

然后,除非经过验证,否则不要使新的电子邮件地址有效。还要求更改电子邮件的用户在开始更改之前需要再次提供密码。

然后发送验证邮件。只有在确认后,才能设置新的登录电子邮件地址。

于 2012-09-27T11:51:16.960 回答
0

您只需为待处理的邮件更改添加一个新表/列。过程将是这样的。

  1. 用户更改电子邮件地址,服务器向旧地址发送确认/激活邮件。同时服务器也会给用户添加一个挂起的邮件更改属性。用户仍需使用旧邮件地址登录。

  2. 用户尚未激活新地址并使用旧地址登录。告诉用户他仍有待更改的邮件地址。此时用户可以取消邮件更改或转到新邮件地址并激活新地址。

2.1 用户注销并激活旧邮件地址的邮件更改。在此激活完成之前,用户仍然必须使用旧邮件地址登录系统。

  1. 激活/确认待处理邮件地址后,主地址出现,待处理属性消失。用户无法使用旧邮件地址登录。
于 2012-09-27T11:52:56.343 回答