我有一个:identifiedas
用户可能存在或不存在的会话密钥。我想要这样,如果您在此密钥存在时进入登录页面,服务器会将您重定向到主页。
我可以使用 anif
来解决这个问题,但如果可能的话,与在另一个函数子句中使用模式相比,这似乎是个坏主意。
def login(conn, %{"username" => username, "password" => password}) do
if Plug.Conn.get_session(conn, :identifiedas) do
conn
|> Flash.put(:notice, "You are already logged in.")
|> redirect(to: "/")
else
# Actually try to login. Elided from example.
end
end
最好我希望它是:
def login(%Conn{:something -> %{:identifiedas => _}, _fields) do
conn
|> Flash.put(:notice, "You are already logged in.")
|> redirect(to: "/")
end
def login(conn, %{"username" => username, "password" => password}) do
# Elided
end