Anyone with experience can shed some light why I’m getting this error when trying Oauth with google.
When google hits the callback endpoint it breaks with the error:
# protocol Ecto.Queryable not implemented for Simple.UserIdentity of type Atom, the given module does not exist. This protocol is implemented for the following type(s): Ecto.Query, Atom, BitString, Tuple, Ecto.SubQuery
my umbrella app consists of two apps simple(ecto) and simple_web(phoenix).
I was able to get the pow library working under the umbrella but trying to implement pow_assent has been an uphill journey for me as I’m very new to elixir/phoenix.
The only reference I could find about an umbrella app and pow_assent is this:
The creator of the library mentions two phoenix apps, I am using just one because I don’t want the oaut provider yet.
contents of what(I think) are important files for this:
defmodule Simple.UserIdentities.UserIdentity do use Ecto.Schema use PowAssent.Ecto.UserIdentities.Schema, user: Simple.Users.User schema "user_identities" do pow_assent_user_identity_fields() timestamps() end end
defmodule Simple.Users.User do use Ecto.Schema use Pow.Ecto.Schema use PowAssent.Ecto.Schema use Pow.Extension.Ecto.Schema, extensions: [PowResetPassword, PowEmailConfirmation] schema "users" do has_many :user_identities, Simple.UserIdentity, on_delete: :delete_all, foreign_key: :user_id pow_user_fields() timestamps() end def changeset(user_or_changeset, attrs) do user_or_changeset |> pow_changeset(attrs) |> pow_extension_changeset(attrs) end end
config :simple, :pow_assent, providers: [ google: [ client_id: "redacted", client_secret: "redacted", strategy: Assent.Strategy.Google ] ]
Any pointers would be really appreciated, I apologize if this seems rather basic, I’m very new to this ecosystem.