Hav*_*vvy 4 elixir phoenix-framework
我有一个:identifiedas可能存在或可能不存在的会话密钥.我想要它,以便在存在此密钥时转到登录页面,服务器会将您重定向到主页.
我可以使用一个if来解决这个问题,但与另一个函数子句中的模式相比,它似乎是一个坏主意,如果可能的话.
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
Run Code Online (Sandbox Code Playgroud)
我希望它是:
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
Run Code Online (Sandbox Code Playgroud)
是.您可以使用此模式:
def index(conn = %Plug.Conn{private: %{plug_session: %{identifiedas: _}}}, _params) do
# ...
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
714 次 |
| 最近记录: |