Внутренняя ошибка сервопривода из приложения flask - PullRequest
0 голосов
/ 13 марта 2020

Здравствуйте, я пишу следующий код для аутентификации имени пользователя и пароля и выполнения кода метода ввода, если указанные учетные данные действительны. Но я получаю внутреннюю ошибку сервера. Может кто-нибудь помочь, где это становится неправильно. Моя цель - выполнить блок кода, если учетные данные совпадают.

#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')

1 Ответ

0 голосов
/ 16 марта 2020

Мне удалось запустить это приложение с простыми изменениями в последовательности использования @ 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...