0
用戶身份驗證下面是我得到的錯誤:鳳凰框架錯誤通過Comeonin
Wrong type. The password and hash need to be strings.
它指向此行我的網站/控制器/ auth.ex文件:
user && checkpw(given_pass, user.password_hash) ->
這是此功能中的一條線:
def login_by_email_and_pass(conn, email, given_pass, opts) do
repo = Keyword.fetch!(opts, :repo)
user = repo.get_by(Qlc.User, email: email)
cond do
user && checkpw(given_pass, user.password_hash) ->
{:ok, login(conn, user)}
user ->
{:error, :unauthorized, conn}
true ->
dummy_checkpw()
{:error, :not_found, conn}
end
end
該函數在SessionController模塊的create action中調用:
def create(conn, %{"session" => %{"email" => email, "password" => pass}}) do
case Qlc.Auth.login_by_email_and_pass(conn, email, pass, repo: Repo) do
{:ok, conn} ->
conn
|> put_flash(:info, "Welcome back!")
|> redirect(to: page_path(conn, :index))
{:error, _reason, conn} ->
conn
|> put_flash(:error, "Invalid email/password combination")
|> render("new.html")
end
end
我該如何解決這個錯誤?我不知道爲什麼密碼和散列不是字符串和/或我如何解決這個問題。
請提供調用此函數的函數(可能是控制器)以及提供的參數。很可能這些參數之一是零。 – Gazler
我編輯過的問題包括函數調用和函數本身。 –
user.password_hash是否可能爲零? – Gazler