Python-在字符串中获取字符串

时间:2018-06-20 03:18:44

标签: python flask

我试图从Flask使用check_password_hash,从我的MySQL数据库获取一个值。我可以从数据库中获取密码,但是当我使用该密码时,返回一个False值。这是我的代码:

class AuthUser(Resource):
    def post(self):
        try:
            parser = reqparse.RequestParser()
            parser.add_argument('username', type=str, help= 'Username')
            parser.add_argument('password', type=str, help= 'Password')

            args = parser.parse_args()

            _userUsername = args['username']
            _userPassword = args['password']


            conn = mysql.connect()

            cursor = conn.cursor()
            cursor.callproc('gsAuthUser', (_userUsername,))
            data = cursor.fetchall()
            cursor.callproc('gsGetPassword', (_userUsername,))
            pwd = cursor.fetchall()
            print(pwd) 

            _userPassDecrypt = check_password_hash(pwd, _userPassword)

            print(_userPassDecrypt) 



        except Exception as e:
            return {'error': str(e)}

         api.add_resource(CreateUser, '/CreateUser')  api.add_resource(AuthUser, '/AuthUser')

这是输出:

((u'pbkdf2:sha256:50000$QtDUZdwY$fa7d211dc9e3db9513b7e11096e257272b2edde3af3e2a0d33ca5cba53a942c7',),)

我想我只需要sha256之后的值:但是我无法获取它。 有人可以帮助我吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

这应该可以,但是可能有更好的方法:

except Exception as e:
    return {'error': str(e.split(':')[2][:-5])}

答案 1 :(得分:0)

现在正在工作!谢谢! 这是我所做的:

cursor.callproc('gsGetPassword',(_userUsername,))         pwd_db = cursor.fetchall()

    pwd_str = str(pwd_db)  
    pwd = pwd_str.split('(')[2][2:-5] 
    _userPassDecrypt = check_password_hash(pwd, _userPassword)


    if (len(data) > 0):
        if(_userPassDecrypt):
       # if(str(data[0][2]) == _userPassDecrypt):
            return {'StatusCode': '200', 'UserID': str(data[0][0])} 
        else:
            return {'StatusCode': '100', 'Message':'Authentication Failure'}

except Exception as e:
    return {'error': str(e)}