Ответ 1
В маршрутизаторе protect_from_forgery
включен Plug.CSRFProtection
. Это устанавливается по умолчанию в конвейере browser
. Как только добавлен плагин, нет возможности отключить его, вместо этого он не должен быть установлен в первую очередь. Вы можете сделать это, переместив его из browser
и включив его только тогда, когда это необходимо.
defmodule Foo.Router do
use Foo.Web, :router
pipeline :browser do
plug :accepts, ["html"]
plug :fetch_session
plug :fetch_flash
#plug :protect_from_forgery - move this
end
pipeline :csrf do
plug :protect_from_forgery # to here
end
pipeline :api do
plug :accepts, ["json"]
end
scope "/", Foo do
pipe_through [:browser, :csrf] # Use both browser and csrf pipelines
get "/", PageController, :index
end
scope "/", Foo do
pipe_through :browser # Use only the browser pipeline
get "/facebook", PageController, :index #You can use the same controller and actions if you like
end
end