登录系统相关
登录系统
jwt生成token,token中携带用户信息
def generate_token(self, user_id, name, role, expires_in=60*60*24, token_type='access_token', secret_key=base_token_secret): now = int(time.time()) payload = { # 'exp': now + expires_in, 'iat': now, 'user_id': user_id, 'name': name, 'role': role, 'token_type': token_type, 'device_type': DEVICE_TYPE } token_str = jwt.encode(payload, secret_key, algorithm='HS256') return token_str
解析token
def parse_token(self, token_str, secret_key=base_token_secret): try: decoded_token = jwt.decode(token_str, secret_key, algorithms=['HS256']) return True, decoded_token except Exception as e: return False, None
登录种类:
1、一个账户只允许在一个设备或只允许在一处登录,此时需要将用户user_id+token类型,如 " 3-token-access_token " 为key,token为value存入redis,使用redis控制一个账号只允许一处登录,别的地方登录就会把上一个登录挤掉
2、一个账号允许多出登录,不影响之前登录的用户,此时需要使用user_id+tokek类型+token作为key存入redis,如” 3-token-access-token “ value为用户的user_id,username,role等等信息,如果要用户退出登录可以使用redis模糊删除直接删除user_id+token来进行模糊删除
                    
                
                
            
        
浙公网安备 33010602011771号