【发布时间】:2019-07-04 09:48:14
【问题描述】:
所以我正在使用Phoenix 最新版本和 Comeonin 5.0 和 bcrypt_elixir 2.0 来对我的密码进行哈希处理,但不知何故,它无法使用我正在使用的当前函数,并且显示它未定义。
因为在我使用hashpwsalt(pass) 传递我的密码以创建哈希之前,函数现在已更改。但现在我使用hash_pwd_salt(pass)。但它仍然向我显示错误。
defp put_password_hash(changeset) do
case changeset do
%Ecto.Changeset{valid?: true, changes: %{password: pass}}
->
put_change(changeset, :password_hash, hash_pwd_salt(pass))
_ ->
changeset
end
end
end
这是我尝试运行服务器时遇到的错误:
无法导入 Comeonin.Bcrypt.hash_pwd_salt/1,因为它未定义或私有
请查看我的代码并告诉我可以做哪些更改?
【问题讨论】:
-
看this tutorial,好像可以在模块开头加上
alias Argon2,然后调用函数为Argon2.hash_pwd_salt(pass)。这听起来像你想要做的吗? -
顺便说一句,通过错误消息,听起来您有一行说
import Comeonin.Bcrypt, only: [hash_pwd_salt: 1],但这不起作用,因为Comeonin.Bcrypt没有该名称的函数,只有hashpwsalt(见the documentation)。 -
将
import Comeonin.Bcrypt, only: [hash_pwd_salt: 1]更改为import Bcrypt, only: [hash_pwd_salt: 1] -
@legoscia 我做了所有这些更改,但它不起作用。我检查了文档
-
@SiddhantSingh 能否请您提供重现问题所需的所有代码,否则人们将很难进一步帮助您。
标签: elixir importerror password-hash