** (UndefinedFunctionError) функция Guardian.Plug.authenticated? / 1 является неопределенной или приватной - PullRequest
0 голосов
/ 09 ноября 2018

Я очень плохо знаком с Elixir и Phoenix, я пытаюсь аутентифицировать свое приложение, используя {: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 голосов
/ 09 ноября 2018

Документация Guardian неправильно ссылается на некоторые вызовы API с момента обновления до v1.0. Вам нужно вызывать эти функции из вашей пользовательской реализации MyApp.Guardian, а не из фактических Guardian модулей.

Если вы следовали инструкциям для реализации MyApp.Guardian, вам нужно позвонить:

MyApp.Guardian.Plug.authenticated?(conn)
0 голосов
/ 09 ноября 2018

Ошибка показывает, что вы пытаетесь вызвать функцию без аргументов:

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

/0 здесь означает отсутствие аргументов.

...