烧瓶应用程序的内部伺服器错误响应

问题描述 投票:0回答:1

您好,我正在编写以下代码来验证用户名和密码,并在给定凭据有效的情况下执行输入方法代码。但是我正在收到内部服务器错误。有人可以帮忙哪里出错了。我的目标是在凭据匹配的情况下执行代码块。

#import statements 
import Example
import Example2
import logging
from flask import Flask
from flask_httpauth import HTTPBasicAuth
from werkzeug.security import generate_password_hash, check_password_hash

#Creating the logge r variables and intialization 
log=logging.getLogger()
format = "%(asctime)s %(message)s"
logging.basicConfig(format=format, level=logging.INFO, filename='Job_history_logs.log')

#Starting the Flask application 
app = Flask(__name__)
auth = HTTPBasicAuth() 

#users
users = {
    "john": generate_password_hash("hello"),
    "susan": generate_password_hash("bye")
}

@app.route('/todo/api/v1.0/tasks', methods=['GET'])
@auth.login_required
@auth.verify_password    
def verify_password(username, password):
    log.info("Username provided is "+ str(username))
    log.info("password provided is "+ str(password))
    if username in users:
        log.info("Hash comparision is "+ str(check_password_hash(users.get(username), password)))
        if check_password_hash(users.get(username), password):
            return True

@auth.error_handler
def unauthorized():
    return make_response(jsonify({'error': 'Unauthorized access'}), 401)

def entry():
    result1 = Example.external()
    result2 = Example2.external2()
    log.info("result1 is "+str(result1))
    log.info(str(result2))
    return str(result1)+"...."+str(result2)

if __name__ == '__main__':
    app.run(host='0.0.0.0')
flask google-cloud-platform flask-sqlalchemy flask-restful flask-login
1个回答
0
投票

我能够通过对@auth_decorators的使用顺序进行简单的更改来运行此应用程序。

工作代码

#import statements
import logging
from external import star_matrix
from flask_httpauth import HTTPBasicAuth
from flask import Flask
from werkzeug.security import generate_password_hash, check_password_hash

#Creating an object 
log=logging.getLogger() 
format = "%(asctime)s %(message)s"
logging.basicConfig(format=format, level=logging.INFO, filename='Job_history_logs.log')

app = Flask(__name__)
auth = HTTPBasicAuth()

#users
users = {
    "john": generate_password_hash("hello"),
    "susan": generate_password_hash("bye")
}

@auth.verify_password 
def verify_password(username, password ):
    log.info("Username provided is "+ str(username))
    log.info("password provided is "+ str(password))
    if username in users:
        log.info("Hash comparision is "+ str(check_password_hash(users.get(username), password)))
        if check_password_hash(users.get(username), password):
            return True 

@app.route('/todo/api/v1.0/tasks', methods=['GET'])
@auth.login_required
def entry():
    log.info('inside the entry function')
    result = star_matrix.external()
    return result 

if __name__ == '__main__':
    app.run(host='0.0.0.0')
© www.soinside.com 2019 - 2024. All rights reserved.