Add login next url parameter for auth redirects

This commit is contained in:
bluepython508
2023-11-09 17:03:20 +00:00
parent 93cd897b0e
commit 6fb839824e
4 changed files with 13 additions and 8 deletions

View File

@@ -40,8 +40,8 @@ defmodule SsoBsnWeb.UserLoginLive do
"""
end
def mount(_params, _session, socket) do
{:ok, socket |> assign(form: to_form(%{"username" => "", "remember_me" => false}), authenticating: false)}
def mount(params, _session, socket) do
{:ok, socket |> assign(form: to_form(%{"username" => "", "remember_me" => false}), authenticating: false, next: params["next"])}
end
def handle_event("login", %{"username" => username}, socket) do
@@ -57,7 +57,7 @@ defmodule SsoBsnWeb.UserLoginLive do
case Accounts.authenticate_user(socket.assigns.challenge, params) do
{:ok, user} ->
login_token = Accounts.generate_user_login_token(user)
{:noreply, socket |> redirect(to: ~p"/users/log_in/#{login_token}")}
{:noreply, socket |> redirect(to: if next = socket.assigns.next do ~p"/users/log_in/#{login_token}?next=#{next}" else ~p"/users/log_in/#{login_token}" end)}
{:error, error} ->
{:noreply, socket |> put_flash(:error, inspect(error))}
end