/ / Użyj Guardian bez modelu - uwierzytelnianie, eliksir, feniks-framework

Użyj Guardiana bez modelu - uwierzytelnianie, eliksir, struktura feniksowa

Chcę wiedzieć, czy można używać Guardian bez modelu użytkownika i jak z niego korzystać.

Używam Phoenixa tylko do serwera, małego API i kanałów. Mam bazę danych w przeglądarce z PouchDB i chcę autoryzować dostęp do małego API.

Chodzi o to, że nie mam i nie chcę mieć modeli w moim backendie, ale Guardian potrzebuje zasobów, aby serializować token.

Czy w tym scenariuszu można coś zrobić?

Kiedy zadzwonię do metody Guardian.serializer.for_token(user) lub Guardian.encode_and_sign(:token) (z mapą użytkownika) zwracany jest nieznany typ zasobu.

Mój guardian_serializer.ex to:

@behaviour Guardian.Serializer

def for_token(user = %{:id => 88888888}), do: {:ok, "User:#{user.id}"}
def for_token(_), do: {:error, "Unknown resource type"}

def from_token("User:" <> id), do: {:ok, "User:#{id}"}
def from_token(_), do: {:error, "Unknown resource type"}

Dzięki.

Odpowiedzi:

0 dla odpowiedzi № 1

Jeśli nie chcesz, aby Guardian dopasowywał tokeny do użytkownika istniejącego w Twojej bazie danych, myślę, że możesz zepsuć swój serializator jako taki:

def for_token(_),  do: {:ok, "ok"}
def from_token(_), do: {:ok, "ok"}

Wtedy nie będziesz miał nic innego niż "ok" podczas dzwonienia Guardian.Plug.current_resource