|
|
@@ -1,2 +1,64 @@
|
|
|
# flask_login
|
|
|
+处理用户认证和登录
|
|
|
|
|
|
+## Usage
|
|
|
+
|
|
|
+```
|
|
|
+from flask import Flask, render_template, redirect, url_for, request
|
|
|
+from flask_login import LoginManager, UserMixin, login_user, logout_user, login_required
|
|
|
+
|
|
|
+app = Flask(__name__)
|
|
|
+app.config['SECRET_KEY'] = 'your_secret_key' # 设置 Flask 应用的密钥
|
|
|
+
|
|
|
+# 初始化 Flask-Login
|
|
|
+login_manager = LoginManager(app)
|
|
|
+login_manager.login_view = 'login'
|
|
|
+
|
|
|
+# 模拟一个用户数据库
|
|
|
+users = [{'123': {'username': 'admin', 'password': 'admin'}}]
|
|
|
+
|
|
|
+# 定义用户类
|
|
|
+class User(UserMixin):
|
|
|
+ pass
|
|
|
+
|
|
|
+# 加载用户的回调函数
|
|
|
+@login_manager.user_loader
|
|
|
+def load_user(user_id):
|
|
|
+ if user_id in users:
|
|
|
+ user = User()
|
|
|
+ user.id = user_id
|
|
|
+ return user
|
|
|
+ return None
|
|
|
+
|
|
|
+# 登录页面
|
|
|
+@app.route('/login', methods=['GET', 'POST'])
|
|
|
+def login():
|
|
|
+ if request.method == 'POST':
|
|
|
+ user_id = request.form['user_id']
|
|
|
+ password = request.form['password']
|
|
|
+ if user_id in users and users[user_id]['password'] == password:
|
|
|
+ user = User()
|
|
|
+ user.id = user_id
|
|
|
+ login_user(user)
|
|
|
+ return redirect(url_for('index'))
|
|
|
+ else:
|
|
|
+ return {"code":-1,"message":"user or pwd is error."}
|
|
|
+ return render_template('login.html')
|
|
|
+
|
|
|
+# 退出登录
|
|
|
+@app.route('/logout')
|
|
|
+@login_required
|
|
|
+def logout():
|
|
|
+ logout_user()
|
|
|
+ return redirect(url_for('index'))
|
|
|
+
|
|
|
+# 需要登录才能访问的页面
|
|
|
+@app.route('/')
|
|
|
+@login_required
|
|
|
+def index():
|
|
|
+ return render_template('index.html')
|
|
|
+
|
|
|
+if __name__ == '__main__':
|
|
|
+ app.run(debug=True)
|
|
|
+
|
|
|
+```
|