için uygulanmadı Guardian'ı benim API'ma uygulamaya çalışıyorum ve JWT'yi geri almak için bir giriş yapın. Baktığım öğretici here. Sorun, örnekte kullandıkları şeye benzer bir Kullanıcı Modeli kullanarak oturum açmayı gerçekleştirmektir. gibi Model kodu görünür:protokolü Ecto.Queryable
kullanıcıyı = PushflightServer.User.from_email:
defmodule PushflightServer.User do
use PushflightServer.Web, :model
use Ecto.Repo
import Ecto.Query
alias PushflightServer.Repo
schema "users" do
field :name, :string
field :email, :string
field :encrypted_password, :string
field :password, :string, virtual: true
field :verify_token, :string
field :verify_date, Ecto.DateTime
timestamps
end
def from_email(nil), do: { :error, :not_found }
def from_email(email) do
IO.write("Before email")
IO.inspect(email)
Repo.one(User, email: email)
end
Ben IEX -S karıştırın Phoenix içinden veya düz ya FROM_EMAIL çağırırsanız, aşağıdaki hatayı alıyorum ("[email protected]")
** (Protocol.UndefinedError) protocol Ecto.Queryable not implemented for User, the given module does not exist (ecto) lib/ecto/queryable.ex:33: Ecto.Queryable.Atom.to_query/1 (ecto) lib/ecto/repo/queryable.ex:90: Ecto.Repo.Queryable.execute/5 (ecto) lib/ecto/repo/queryable.ex:15: Ecto.Repo.Queryable.all/4 (ecto) lib/ecto/repo/queryable.ex:44: Ecto.Repo.Queryable.one/4
basit bir şey eksik olmalı, ama bu neden oluyor herhangi bir belgelerine bulmak mümkün olmamıştır. Repo kullanarak verilerin eklenmesi iyi çalıştı. Herhangi bir fikir?