chore(AshAuthenticationPhoenix): added library and updated ressources testing password strategy
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
carla 2025-06-03 08:39:28 +02:00
parent 9ffb8f7170
commit 483e506361
Signed by: carla
GPG key ID: 908AFB7283DFC1B3
24 changed files with 695 additions and 29 deletions

View file

@ -0,0 +1,55 @@
defmodule MvWeb.AuthController do
use MvWeb, :controller
use AshAuthentication.Phoenix.Controller
def success(conn, activity, user, _token) do
return_to = get_session(conn, :return_to) || ~p"/"
message =
case activity do
{:confirm_new_user, :confirm} -> "Your email address has now been confirmed"
{:password, :reset} -> "Your password has successfully been reset"
_ -> "You are now signed in"
end
conn
|> delete_session(:return_to)
|> store_in_session(user)
# If your resource has a different name, update the assign name here (i.e :current_admin)
|> assign(:current_user, user)
|> put_flash(:info, message)
|> redirect(to: return_to)
end
def failure(conn, activity, reason) do
message =
case {activity, reason} do
{_,
%AshAuthentication.Errors.AuthenticationFailed{
caused_by: %Ash.Error.Forbidden{
errors: [%AshAuthentication.Errors.CannotConfirmUnconfirmedUser{}]
}
}} ->
"""
You have already signed in another way, but have not confirmed your account.
You can confirm your account using the link we sent to you, or by resetting your password.
"""
_ ->
"Incorrect email or password"
end
conn
|> put_flash(:error, message)
|> redirect(to: ~p"/sign-in")
end
def sign_out(conn, _params) do
return_to = get_session(conn, :return_to) || ~p"/"
conn
|> clear_session()
|> put_flash(:info, "You are now signed out")
|> redirect(to: return_to)
end
end