「Phoenix」フレームワークでユーザー認証ヘルパーです。ログインユーザー情報をテンプレート上で扱えるようになります。ソースを見れば、何となく分かるのですが、書き方がエレガントすぎて、ついていけません(笑)。
/web/models/session.ex(モデル)
参考サイト
User Authentication from Scratch in Elixir and Phoenix(Nithin Bekalさん)
/web/models/session.ex(モデル)
/web/web.ex
def current_user(conn) do
id = Plug.Conn.get_session(conn, :current_user)
if id, do: HelloPhoenix.Repo.get(User, id)
end
def logged_in?(conn), do: !!current_user(conn)
/web/templates/layout/app.html.eex(テンプレート)
def view do
quote do
import HelloPhoenix.Session, only: [current_user: 1, logged_in?: 1]
end
end
<%= if logged_in?(@conn) do %>
<p><%= current_user(@conn).email %></p>
<p><%= link "ログアウト", to: session_path(@conn, :delete), method: :delete %></p>
<% else %>
<p><%= link "ログイン", to: "/login" %></p>
<p><%= link "会員登録", to: registration_path(@conn, :new) %></p>
<% end %>
参考サイト
User Authentication from Scratch in Elixir and Phoenix(Nithin Bekalさん)