Masonite - TypeError: Can't convert 'Undefined' object to str implicitly
Masonite - TypeError: Can't convert 'Undefined' object to str implicitly
我正在使用 Masonite 框架,在 Masonite 1.6 中 运行 craft auth
命令后注册用户时出现错误。堆栈跟踪的结尾如下所示:
{% for i, line in enumerate(open(stack.filename)) %}
TypeError: Can't convert 'Undefined' object to str implicitly
这已在 Masonite 1.6.3 中修复。问题在于密码在使用 bcrypt 散列后没有被解码回字符串的错误。显然 MySQL 在插入数据库之前将字节转换为字符串,但 Postgres 和 SQLite 不会。
升级
修复方法是通过 运行 升级 Masonite:
pip install --upgrade -r requirements.txt
升级到最新版本(所以craft auth
不会再创建有这个bug的控制器)
补丁
并通过将 RegisterController 中的第 20 行更改为:
来修补当前应用程序
password = bytes(bcrypt.hashpw(
bytes(Request.input('password'), 'utf-8'), bcrypt.gensalt()
)).decode('utf-8')
我正在使用 Masonite 框架,在 Masonite 1.6 中 运行 craft auth
命令后注册用户时出现错误。堆栈跟踪的结尾如下所示:
{% for i, line in enumerate(open(stack.filename)) %}
TypeError: Can't convert 'Undefined' object to str implicitly
这已在 Masonite 1.6.3 中修复。问题在于密码在使用 bcrypt 散列后没有被解码回字符串的错误。显然 MySQL 在插入数据库之前将字节转换为字符串,但 Postgres 和 SQLite 不会。
升级
修复方法是通过 运行 升级 Masonite:
pip install --upgrade -r requirements.txt
升级到最新版本(所以craft auth
不会再创建有这个bug的控制器)
补丁
并通过将 RegisterController 中的第 20 行更改为:
来修补当前应用程序password = bytes(bcrypt.hashpw(
bytes(Request.input('password'), 'utf-8'), bcrypt.gensalt()
)).decode('utf-8')