有没有一种方法可以让Phoenix插头只用于一条路线



在凤凰城,我的路线如下:

scope "/", ManaWeb do
pipe_through [:browser, :auth]
get "/register",  RegistrationController, :new
post "/register", RegistrationController, :register
end

但是,我想为最后一个路由(POST(设置一个插件。

使用当前的工具,我将如何做到这一点?

另一个解决方案是直接在控制器中使用插头

defmodule ManaWeb.RegistrationController do
# import the post_plug...
plug :post_plug when action in [:register]
def register(conn, params) do
# ...
end
end

Phoenix.Router.pipeline/2文档中所述

每次调用pipe_through/1时,新的管道都会附加到先前给定的管道上。

也就是说,这将起作用:

scope "/", ManaWeb do
pipe_through [:browser, :auth]
get "/register",  RegistrationController, :new
pipe_through :post_plug
post "/register", RegistrationController, :register
end

相关内容

  • 没有找到相关文章