单用户登录

目的:一个账号只能在一个地方登录,不能同时登录
有两种处理逻辑:
1. A登录后,B不能使用同样的账户进行登录
后台逻辑定义:
用户数据表多添加一个字段,默认为false,每次用户发起登录,检测是否为false,是则可以登录,并设置为true,如果为true,则提示用户已登录,请换个账号
2. A登录后,B可以登录,B登录成功的同时,A会自动被踢
后台逻辑定义:
用户登录成功后,利用登录时间生成一个Session.保存在用户本地的cookie和我们的服务器上.
添加一个中间件,添加到响应的路由前面,每次操作我们的控制器,都必须经过中间件进行过滤,每次都需要将session提交与服务器的进行比对,如果不一致则踢出下线
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Python中,创建一个简用户登录系统通常涉及到用户验证和会话管理。以下是一个基本的流程: 1. 用户输入用户名和密码(可能是通过命令行交互,也可以是网页表)。 2. 验证用户名和密码是否匹配数据库中的记录。这可能使用Python的sqlite3、SQLAlchemy等ORM库与数据库交互,或者直接操作文件存储数据(如JSON或pickle)。 3. 如果验证通过,设置一个会话标识(例如使用cookies、session ID或JWT)来标识当前登录用户,存放在服务器端或客户端。 4. 对于每个后续请求,检查会话标识以确认用户是否已经登录,如果没有登录则重定向到登录页面。 下面是一个简的示例,使用Flask框架来演示这个过程: ```python from flask import Flask, request, session, redirect, url_for import json app = Flask(__name__) app.secret_key = 'your_secret_key' # 设置一个用于加密的密钥 # 假设有一个users.json文件存储用户信息 with open('users.json', 'r') as f: users = json.load(f) def is_user_logged_in(): return 'username' in session @app.route('/login', methods=['POST']) def login(): username = request.form['username'] password = request.form['password'] if username in users and users[username] == password: session['username'] = username return 'Logged in successfully!' else: return 'Invalid credentials!' @app.route('/') @app.route('/protected') def protected(): if not is_user_logged_in(): return redirect(url_for('login')) else: return f'Welcome, {session["username"]}! This is a protected page.' if __name__ == '__main__': app.run() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值