defmodule VishnyaWeb.AuthController do use VishnyaWeb, :controller alias Vishnya.Accounts def authenticate_user(conn, %{"username" => username, "password" => password} = params) do remember = Map.get(params, "remember") == "on" IO.inspect(remember) case Accounts.authenticate_user(username, password) do {:ok, user} -> conn |> put_flash(:info, "Signed in successfully!") |> put_resp_cookie("auth_token", user.token, max_age: if(remember, do: 60 * 60 * 24 * 30, else: nil)) |> redirect(to: "/dashboard") :error -> conn |> put_flash(:error, "Invalid username or password.") |> redirect(to: "/sign_in") end end def authenticate_user(conn, %{"token" => token}) do case Accounts.authenticate_user(token) do nil -> conn |> put_flash(:error, "Invalid session token.") |> redirect(to: "/sign_in") user -> conn |> put_flash(:info, "Loaded session token.") |> put_resp_cookie("auth_token", user.token, max_age: 60 * 60 * 24 * 30) |> redirect(to: "/dashboard") end end end