python - 首次登录后强制重置密码
问题描述
我正在使用 Python、ReactJS、AWS lambda 制作一个 Web 应用程序。
我想强制用户在第一次登录后更改密码。我应该如何处理后端更改?
重置密码后,它应该重定向到正常页面。
任何帮助将不胜感激。
解决方案
在您存储用户的表中,您可以创建一个列来检查用户是否是第一次登录。可以通过下面的方法实现,在创建用户时,将firstLogin(of Type Date)列的值设置为NULL,当用户第一次登录时,可以使用Date函数获取日期并在那里插入值。
所以,这里是简短的过程。
- 使用 fetch、axios、request 或任何您喜欢创建帐户的模块发出 HTTP 请求以创建帐户。路由:POST /user,正文包含有关用户的值或数据。在后端,将 SQL 语句设置为
INSERT INTO User(Firstname, Lastname, Username, Password, FirstLogin) VALUES ("RAM", "KUMAR", "ramkumar", "iamaverysecurepassword", NULL);
- 现在,当用户第一次使用您的 Web 应用程序登录时,使用以下路由调用后端:PATCH /user,以执行以下 SQL 查询
UPDATE User SET FirstLogin="{Value of Date}" WHERE Username="{Your username here(ramkumar)}";
- 现在,当您设置了用户首次登录的日期后,您可以使用重定向 Web 应用程序上的用户
document.location.href={URL to normal page}"
- 然后出现了一个条件,如果用户没有第一次登录,如何将他重定向到密码更改页面?您实际上再次执行 SQL 查询,以检查他是否是第一次登录。所以,基本上每次一个动作都需要用户之前登录过,即第一次。您检查 SQL 中的 FirstLogin 列是否具有相应用户的值或为 NULL。
SELECT Firstname FROM User WHERE Username={your username here(ramkumar)};
现在使用代码中的 if 语句检查值、执行的 SQL 查询的值以及 FirstLogin 是否包含日期或为空。
推荐阅读
- firefox - 在 mediaRecorder.start(timeslice) 中接受时间片的特征检测
- javascript - 根据外部ID在javascript中对数组进行排序
- rest - REST:哪个 HTTP 状态用于拒绝当前资源状态的方法
- dafny - 在 Dafny 中创建范围为 n 的数组的最佳方法?
- r - 带有计数的堆叠条形图中 geom_text 的百分比
- datatables - 同一页面上的数据表
- qt - QSqlTableModel: Where can I get whether a row is marked as removed
- r - 重命名分类级别以减少级别数
- ansible - Ansible Missing sudo password
- php - Laravel Models 一对多关系未建立