You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@Date:2022/07/27 15:55:01
'''
from flask import g
from flask_httpauth import HTTPBasicAuth , HTTPTokenAuth
from db_logic . user import BllUser
from models . user_models import EntityUser
from Common . errors import error_response
basic_auth = HTTPBasicAuth ( )
token_auth = HTTPTokenAuth ( )
@basic_auth . verify_password
def verify_password ( username , password ) :
''' 用于检查用户提供的用户名和密码 '''
user = EntityUser . query . filter_by ( username = username ) . first ( )
if user is None :
return False
g . current_user = user
return user . check_password ( password )
@basic_auth . error_handler
def basic_auth_error ( ) :
''' 用于在认证失败的情况下返回错误响应 '''
return error_response ( 401 )
@token_auth . verify_token
def verify_token ( token ) :
''' 用于检查用户请求是否有token, 并且token真实存在, 还在有效期内 '''
# g.current_user = User.verify_jwt(token) if token else None
g . current_user = BllUser ( ) . verify_jwt ( token )
return g . current_user is not None
@token_auth . error_handler
def token_auth_error ( ) :
''' 用于在 Token Auth 认证失败的情况下返回错误响应 '''
return error_response ( 401 )