水果超市管理系统修改密码代码
时间: 2024-07-16 09:00:42 浏览: 77
代码_java水果超市管理系统_
5星 · 资源好评率100%
在设计一个水果超市管理系统的修改密码功能时,我们通常会创建一个用户界面,允许管理员或用户输入旧密码、新密码以及可能的确认密码。这里是一个简单的Python示例,使用Flask框架来展示基本的登录和密码修改逻辑(假设我们已经有了一个User类和数据库连接):
```python
from flask import Flask, request, redirect, url_for
from flask_login import LoginManager, UserMixin, login_user, logout_user, current_user, login_required
import hashlib
app = Flask(__name__)
login_manager = LoginManager()
login_manager.init_app(app)
# 假设有一个User模型存储用户信息
class User(UserMixin):
def __init__(self, id, username, password_hash):
self.id = id
self.username = username
self.password_hash = password_hash
@app.route('/change_password', methods=['GET', 'POST'])
@login_required
def change_password():
if request.method == 'POST':
old_password = request.form.get('old_password')
new_password = request.form.get('new_password')
confirm_password = request.form.get('confirm_password')
# 验证旧密码
if not verify_password(current_user.password_hash, old_password):
return "旧密码错误"
# 如果新密码和确认密码一致
if new_password != confirm_password:
return "新密码和确认密码不匹配"
# 更新数据库中的密码哈希值
new_password_hash = hashlib.sha256(new_password.encode()).hexdigest()
db.update_user_password(current_user.id, new_password_hash)
logout_user() # 登出用户后更新密码,以防止旧密码被泄露
login_user(User.query.get(current_user.id)) # 使用新密码重新登录
return redirect(url_for('dashboard')) # 返回到首页
return '''
<form method="post">
Old Password: <input type="password" name="old_password"><br>
New Password: <input type="password" name="new_password"><br>
Confirm Password: <input type="password" name="confirm_password"><br>
<input type="submit" value="Change Password">
</form>
'''
def verify_password(password_hash, input_password):
return hashlib.sha256(input_password.encode()).hexdigest() == password_hash
# 添加登录管理器的回调函数
@login_manager.user_loader
def load_user(user_id):
return User.query.get(int(user_id))
if __name__ == '__main__':
app.run(debug=True)
```
阅读全文