6个版本
0.1.5 | 2020年9月18日 |
---|---|
0.1.4 | 2020年7月8日 |
0.1.3 | 2020年1月13日 |
#1221 in HTTP服务器
84KB
2K SLoC
登录模块 / 模板
一个登录模块,旨在作为 模板 使用于需要用户 登录/注册 的Web应用。使用 SQLite 数据库存储注册数据。使用 Cookie 进行 会话 管理。使用 SMTP 客户端 MSMTP 发送电子邮件。
目标
以下目标为导向的开发
- 学习Rust语言
- 可重用 登录 代码
- 包含登录相关功能、表单或屏幕的代码,例如
a. 注册表单
b. 向注册邮箱发送一个有效期的 令牌,以确认注册
c. 输入 令牌 值的注册确认屏幕
d. 登录表单
e. 忘记密码表单
f. 向注册邮箱发送一个有效期的令牌,以确认 忘记密码 请求
g. 密码重置表单
h. 一个主页(索引页),显示:登录、注销或取消
先决条件
- Rust 安装
- MSMTP客户端安装(在 msmtp.md 文件中可以找到快速设置指南)
如何使用它
- 克隆或下载此应用
- 编辑 Settings.toml 文件以更新数据库文件夹、日志文件夹、电子邮件服务器详情、IP地址等名称。
- 使用以下命令构建可执行文件: $Cargo build --release。
- 将以下文件/文件夹复制到一个单独的文件夹中,例如 "~/projects"。
a. target/release/login-app 文件
b. template 文件夹
c. 两个toml文件: Settings.toml 和 Messages.toml。 - 编辑 login_app.service 以更新文件夹名称,并按照其中的说明在Linux中将此应用作为服务运行。
- 假设 Settings.toml 文件中的 IP 地址和端口号为 127.0.0.1 和 6000,打开浏览器并输入网址 http://127.0.0.1:6000。
- 浏览器会显示一个包含 登录 | 注册 链接的主页...
- 点击 注册 链接进入注册页面。
- 注册页面显示电子邮件、密码和重复密码等字段。填写它们并提交;提交后,将打开一个确认页面。
- 获取发送到电子邮件的令牌副本或在没有开发环境的情况下,转到 DB Browser for SQLite(假设已安装在Linux机器上)... 打开数据库文件,该文件可能位于 /login_app/database 文件夹下,名为 login_app.db,打开 app_user 表,并找到其中的条目,复制 token 字段下的数据。将此数据粘贴到确认页面上。
- 输入令牌有时间限制,例如 60秒,这可以在 Settings.toml 文件中自定义。
- 时间限制到期后,注册数据将从数据库中删除。
- 成功输入令牌值后,注册将被确认。
- 转到登录页面,并尝试使用凭据登录。
- 成功登录后,将显示索引页面,其中包括用户 电子邮件地址、注销 和 取消 链接
- 如果登录凭据出错,将保持在登录屏幕上,显示 无效凭据!
- 如果忘记密码,请转到登录页面,点击 忘记密码? 链接。
- 在忘记密码表单中输入电子邮件地址。
- 提交此请求后,将发送包含令牌的电子邮件。将其复制到寻找它的下一个屏幕,以确认请求。
- 使用令牌确认请求后,将出现 重置密码 表单。输入新密码并提交。现在尝试使用新密码登录。
演示
以下链接可以找到演示应用程序
LoginApp 演示
它使用 Hyper 框架编写,没有 HTTPS,没有多语言支持。
此外,其版本 2 可以在以下链接中找到
LoginApp 演示版本 2.
它使用 Warp 框架 + HTTPS + 多语言支持。
工具
如果在不同的端口上运行多个网络应用程序,可以使用流量路由器。请参阅 https://github.com/mohankumaranna/traffic_router
许可协议
MIT
依赖项
~63MB
~1M SLoC