Current section
Files
Jump to
Current section
Files
lib/phoenix_oauth2_provider.ex
defmodule PhoenixOauth2Provider do
@moduledoc """
A module that provides OAuth 2 server capabilities for Phoenix applications.
## Configuration
config :phoenix_oauth2_provider, PhoenixOauth2Provider,
current_resource_owner: :current_user,
module: MyApp,
router: MyApp.Router
You can find more config options in the
[ex_oauth2_provider](https://github.com/danschultzer/ex_oauth2_provider)
library.
"""
@config Application.get_env(:phoenix_oauth2_provider, PhoenixOauth2Provider, [])
@module Keyword.get(@config, :module, Mix.Phoenix.base())
@router_helpers Module.concat([Keyword.get(@config, :router, Module.concat([@module, "Web", "Router"])), "Helpers"])
@resource_owner_key Keyword.get(@config, :current_resource_owner, :current_user)
@doc false
def router_helpers, do: @router_helpers
@doc """
Will get current resource owner from endpoint
"""
def current_resource_owner(conn) do
case conn.assigns[@resource_owner_key] do
nil -> raise "Resource owner was not found with :#{@resource_owner_key} assigns"
resource_owner -> resource_owner
end
end
end