Tôi đang xây dựng một ứng dụng Phoenix có xác thực. Trong bộ định tuyến của tôi, tôi có một cái gì đó như:Làm cách nào để bỏ qua một plug cho một trang cụ thể
pipeline :browser do
plug :accepts, ["html"]
plug MyApp.Plugs.Authenticate
end
scope "/", MyApp do
pipe_through :browser # Use the default browser stack
get "/", HomeController, :show
get "/login", SessionsController, :login
get "/matches", MatchesController, :index
end
Tôi muốn bỏ qua Authenticate plug for/login, tôi có thể làm điều này trong bộ định tuyến hoặc tôi phải làm điều này trong chính Plug?
Plugs.Authenticate trông giống như:
def call(conn, _) do
case Authenticator.find_user(conn) do
{:ok, user} ->
assign(conn, :user, user)
:error ->
conn
|> redirect(to: "/login")
|> halt
end
end