diff --git a/lib/ex_oauth2_provider.ex b/lib/ex_oauth2_provider.ex index 8d4f40b1..b9a3ae8c 100644 --- a/lib/ex_oauth2_provider.ex +++ b/lib/ex_oauth2_provider.ex @@ -57,6 +57,7 @@ defmodule ExOauth2Provider do |> maybe_revoke_previous_refresh_token(config) |> validate_access_token() |> load_resource_owner(config) + |> load_application(config) end defp load_access_token(token, config) do @@ -96,4 +97,11 @@ defmodule ExOauth2Provider do {:ok, access_token} end + defp load_application({:error, error}, _config), do: {:error, error} + defp load_application({:ok, access_token}, config) do + repo = Config.repo(config) + application = repo.preload(access_token, :application) + + {:ok, application} + end end diff --git a/lib/ex_oauth2_provider/access_tokens/access_tokens.ex b/lib/ex_oauth2_provider/access_tokens/access_tokens.ex index bc35d24e..f173ed25 100644 --- a/lib/ex_oauth2_provider/access_tokens/access_tokens.ex +++ b/lib/ex_oauth2_provider/access_tokens/access_tokens.ex @@ -29,9 +29,12 @@ defmodule ExOauth2Provider.AccessTokens do """ @spec get_by_token(binary(), keyword()) :: AccessToken.t() | nil def get_by_token(token, config \\ []) do + config - |> Config.access_token() - |> Config.repo(config).get_by(token: token) + |> Config.access_token() + |> Config.repo(config).get_by(token: token) + |> Config.repo(config).preload(:application) + end @doc """