从Splync v1.0到Splync v1.1
注册Splync时,系统会要求您输入电子邮件地址和密码。正如我在之前的文章中介绍的那样,Splync v1.0已经包含了基本的安全措施。您的数据传输受HTTPS保护。我们的服务器通过SSH加密,只有开发者可以访问。您的密码从未以明文形式存储,而是在数据库中进行了哈希处理,确保无人能解码。然而,v1.0的秘密在于,账户创建过程没有电子邮件验证功能。由于Splync作为MVP(最小可行产品)发布时,应用还处于只有朋友知道的阶段,因此未包含此功能。在v1.0中,应用仅检查输入的电子邮件地址是否含有“@”并且在现有账户中是唯一的。
没有电子邮件验证会发生什么
如果应用允许用户在未经身份验证的情况下创建账户,就容易出现有人使用他人电子邮件地址注册自己的账户的情况。这种情况确实可能发生。虽然这不意味着您的数据会泄露,但意味着如果您的电子邮件地址已被使用,您将无法用它注册。此外,有人可能会使用完全虚构的电子邮件地址创建账户。起初这似乎不严重,但如果开发者后来尝试收费或联系该用户时,这将成为灾难。我甚至不知道那个人是谁!因此,电子邮件验证是Splync的下一步。
电子邮件验证如何工作
在Splync v1.1中,新用户注册时,应用会自动向他们输入的地址发送电子邮件。此邮件包含一个独特的自动生成的验证链接。用户点击链接后,即可确认他们真的是该邮箱的拥有者。验证完成后,服务器激活用户账户,并将其存储在数据库中,标记为有效的已认证用户。是不是很熟悉?这个过程确保Splync中的每个账户都属于一个真实且可以联系到的人——这是建立可信社区的重要一步。让我们从技术角度更深入地看看这一流程的实施。
电子邮件验证的技术实施
Splync的后端使用Python/FastAPI,移动应用由SwiftUI构建。应用仅处理用户界面,而验证逻辑和敏感凭证则安全保存在服务器上。在v1.1中,我们在“未验证用户”和“已验证用户”之间添加了标准电子邮件验证步骤。当新用户注册时,应用将输入的数据发送到服务器。服务器使用MariaDB数据库,将用户储存为未验证状态。密码经过哈希处理并保存,但账户尚未激活。此时,服务器还生成一个具有过期时间的唯一验证令牌。接着,使用SMTP(简单邮件传输协议)服务器,服务器发送包含安全一次性链接的验证邮件。当用户打开链接时,服务器检查令牌是否有效且未过期。一旦验证成功,账户即变为活跃状态,用户便可正常从应用登录。这一过程保持了身份验证的安全性和轻量性。
Python? FastAPI? SwiftUI? SMTP? MariaDB
如果这些听起来像密码,别担心——它们只是让系统协同工作的工具。将Splync的注册流程想象成一个客户服务中心在验证某人的身份。“请问您的姓名和电子邮件地址?”SwiftUI,前台友好的接待员这样问。您告诉她您的信息,她说:“请稍等一下。”她立即将信息转发给FastAPI,办公室的内部电话系统。FastAPI将她连接到Python,负责验证的后台专家。Python检查MariaDB,客户数据库,以安全地记录您的信息——标记为“未验证”状态。然后,Python请SMTP,外部信使,发送一封带有安全链接的确认邮件。当您点击链接时,Python会核实其有效性,并在MariaDB中将您的记录更新为“已验证”。最后,FastAPI通知接待员您的身份已确认,账户现已激活。这些环节共同实现了Splync的人性化且安全的验证过程。
Splync安全旅程的下一步
电子邮件验证看似小功能,却改变了信任的整体面貌。这标志着Splync从一个朋友间的个人项目发展为任何人都可以放心加入的公共应用。通过SMTP发送验证链接甚至让人感觉像是Splync与新用户的第一次握手。在幕后,这一功能为未来的改进奠定了基础——密码重置、多因素认证和账户恢复。每一层安全都建立在之前的基础上。通过电子邮件验证,Splync v1.1迈出了重要一步——使共享费用管理不仅便捷,而且真正可靠。