#工具 #工具 # #Web应用 #用户邮箱

bin+lib login_app

用于Web应用的通用登录模块

6个版本

0.1.5 2020年9月18日
0.1.4 2020年7月8日
0.1.3 2020年1月13日

#1221 in HTTP服务器

MIT 许可证

84KB
2K SLoC

登录模块 / 模板

一个登录模块,旨在作为 模板 使用于需要用户 登录/注册 的Web应用。使用 SQLite 数据库存储注册数据。使用 Cookie 进行 会话 管理。使用 SMTP 客户端 MSMTP 发送电子邮件。

目标

以下目标为导向的开发

  1. 学习Rust语言
  2. 可重用 登录 代码
  3. 包含登录相关功能、表单或屏幕的代码,例如
    a. 注册表单
    b. 向注册邮箱发送一个有效期的 令牌,以确认注册
    c. 输入 令牌 值的注册确认屏幕
    d. 登录表单
    e. 忘记密码表单
    f. 向注册邮箱发送一个有效期的令牌,以确认 忘记密码 请求
    g. 密码重置表单
    h. 一个主页(索引页),显示:登录、注销或取消

先决条件

  1. Rust 安装
  2. MSMTP客户端安装(在 msmtp.md 文件中可以找到快速设置指南)

如何使用它

  1. 克隆或下载此应用
  2. 编辑 Settings.toml 文件以更新数据库文件夹、日志文件夹、电子邮件服务器详情、IP地址等名称。
  3. 使用以下命令构建可执行文件: $Cargo build --release
  4. 将以下文件/文件夹复制到一个单独的文件夹中,例如 "~/projects"。
    a. target/release/login-app 文件
    b. template 文件夹
    c. 两个toml文件: Settings.tomlMessages.toml
  5. 编辑 login_app.service 以更新文件夹名称,并按照其中的说明在Linux中将此应用作为服务运行。
  6. 假设 Settings.toml 文件中的 IP 地址和端口号为 127.0.0.16000,打开浏览器并输入网址 http://127.0.0.1:6000
  7. 浏览器会显示一个包含 登录 | 注册 链接的主页...
  8. 点击 注册 链接进入注册页面。
  9. 注册页面显示电子邮件、密码和重复密码等字段。填写它们并提交;提交后,将打开一个确认页面。
  10. 获取发送到电子邮件的令牌副本或在没有开发环境的情况下,转到 DB Browser for SQLite(假设已安装在Linux机器上)... 打开数据库文件,该文件可能位于 /login_app/database 文件夹下,名为 login_app.db,打开 app_user 表,并找到其中的条目,复制 token 字段下的数据。将此数据粘贴到确认页面上。
  11. 输入令牌有时间限制,例如 60秒,这可以在 Settings.toml 文件中自定义。
  12. 时间限制到期后,注册数据将从数据库中删除。
  13. 成功输入令牌值后,注册将被确认。
  14. 转到登录页面,并尝试使用凭据登录。
  15. 成功登录后,将显示索引页面,其中包括用户 电子邮件地址注销取消 链接
  16. 如果登录凭据出错,将保持在登录屏幕上,显示 无效凭据!
  17. 如果忘记密码,请转到登录页面,点击 忘记密码? 链接。
  18. 在忘记密码表单中输入电子邮件地址。
  19. 提交此请求后,将发送包含令牌的电子邮件。将其复制到寻找它的下一个屏幕,以确认请求。
  20. 使用令牌确认请求后,将出现 重置密码 表单。输入新密码并提交。现在尝试使用新密码登录。

演示

以下链接可以找到演示应用程序
LoginApp 演示
它使用 Hyper 框架编写,没有 HTTPS,没有多语言支持。

此外,其版本 2 可以在以下链接中找到
LoginApp 演示版本 2.
它使用 Warp 框架 + HTTPS + 多语言支持。

工具

如果在不同的端口上运行多个网络应用程序,可以使用流量路由器。请参阅 https://github.com/mohankumaranna/traffic_router

许可协议

MIT

依赖项

~63MB
~1M SLoC