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 № 1Jeś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