View Source AshAuthentication.Phoenix.Router (ash_authentication_phoenix v1.4.5)
Phoenix route generation for AshAuthentication.
Using this module imports the macros in this module and the plug functions
from AshAuthentication.Phoenix.Plug
.
usage
Usage
Adding authentication to your live-view router is very simple:
defmodule MyAppWeb.Router do
use MyAppWeb, :router
use AshAuthentication.Phoenix.Router
pipeline :browser do
# ...
plug(:load_from_session)
end
pipeline :api do
# ...
plug(:load_from_bearer)
end
scope "/", MyAppWeb do
pipe_through :browser
sign_in_route
sign_out_route AuthController
auth_routes_for MyApp.Accounts.User, to: AuthController
reset_route
end
Link to this section Summary
Types
Options that can be passed to auth_routes_for
.
A sub-path if required. Defaults to /auth
.
Any options which should be passed to the generated scope.
The controller which will handle success and failure.
Functions
Generates the routes needed for the various strategies for a given AshAuthentication resource.
Generates a generic, white-label password reset page using LiveView and the
components in AshAuthentication.Phoenix.Components
.
Generates a generic, white-label sign-in page using LiveView and the
components in AshAuthentication.Phoenix.Components
.
Generates a sign-out route which points to the sign_out
action in your auth
controller.
Link to this section Types
@type auth_route_options() :: [path_option() | to_option() | scope_opts_option()]
Options that can be passed to auth_routes_for
.
@type path_option() :: {:path, String.t()}
A sub-path if required. Defaults to /auth
.
@type scope_opts_option() :: {:scope_opts, keyword()}
Any options which should be passed to the generated scope.
@type to_option() :: {:to, AshAuthentication.Phoenix.Controller.t()}
The controller which will handle success and failure.
Link to this section Functions
@spec auth_routes_for(Ash.Resource.t(), auth_route_options()) :: Macro.t()
Generates the routes needed for the various strategies for a given AshAuthentication resource.
This is required if you wish to use authentication.
options
Options
to
- a module which implements theAshAuthentication.Phoenix.Controller
behaviour. This is required.path
- a string (starting with "/") wherein to mount the generated routes.scope_opts
- any options to pass to the generated scope.
example
Example
scope "/", DevWeb do
auth_routes_for(MyApp.Accounts.User,
to: AuthController,
path: "/authentication",
scope_opts: [host: "auth.example.com"]
)
end
@spec reset_route( opts :: [ {:path, String.t()} | {:live_view, module()} | {:as, atom()} | {:overrides, [module()]} | {atom(), any()} ] ) :: Macro.t()
Generates a generic, white-label password reset page using LiveView and the
components in AshAuthentication.Phoenix.Components
.
Available options are:
path
the path under which to mount the live-view. Defaults to"/password-reset"
.live_view
the name of the live view to render. Defaults toAshAuthentication.Phoenix.ResetLive
.as
which is passed to the generatedlive
route. Defaults to:auth
.overrides
specify any override modules for customisation. SeeAshAuthentication.Phoenix.Overrides
for more information. all other options are passed to the generatedscope
.
This is completely optional.
@spec sign_in_route( opts :: [ {:path, String.t()} | {:live_view, module()} | {:as, atom()} | {:overrides, [module()]} | {atom(), any()} ] ) :: Macro.t()
Generates a generic, white-label sign-in page using LiveView and the
components in AshAuthentication.Phoenix.Components
.
This is completely optional.
Available options are:
path
the path under which to mount the live-view. Defaults to"/sign-in"
.live_view
the name of the live view to render. Defaults toAshAuthentication.Phoenix.SignInLive
.as
which is passed to the generatedlive
route. Defaults to:auth
.overrides
specify any override modules for customisation. SeeAshAuthentication.Phoenix.Overrides
for more information.all other options are passed to the generated
scope
.
sign_out_route(auth_controller, path \\ "/sign-out", opts \\ [])
View Source (macro)@spec sign_out_route(AshAuthentication.Phoenix.Controller.t(), path :: String.t(), [ {:as, atom()} | {atom(), any()} ]) :: Macro.t()
Generates a sign-out route which points to the sign_out
action in your auth
controller.
This is optional, but you probably want it.