**(UndefinedFunctionError)函数Guardian.Plug.authenticated?/ 1是未定义或私有的

时间:2018-11-09 11:13:59

标签: elixir phoenix-framework guardian

我对ElixirPhoenix并不陌生,我尝试使用{:comeonin, "~> 4.0"}{:guardian, "~> 1.0"}对我的应用程序进行身份验证,并具有一个帮助程序功能来检查用户是否登录:

defmodule Chatter.ViewHelper do
  def current_user(conn), do: Guardian.Plug.current_resource(conn)
  def logged_in?(conn) do
    Guardian.Plug.authenticated?(conn)
  end
end

但是我得到这个错误:

** (UndefinedFunctionError) function Guardian.Plug.authenticated?/1 is undefined or private.

2 个答案:

答案 0 :(得分:2)

自升级到v1.0以来,Guardian文档未正确引用某些API调用。您需要从自定义MyApp.Guardian实现中调用这些函数,而不是从实际的Guardian模块中调用。

假设您followed the guide要实施MyApp.Guardian,则需要调用:

MyApp.Guardian.Plug.authenticated?(conn)

答案 1 :(得分:1)

该错误表明您正在尝试不带参数的函数:

(UndefinedFunctionError) function Guardian.Plug.authenticated?/0

/0此处没有参数。