Elixir 编程Phoenix-无法访问注册表页

Elixir 编程Phoenix-无法访问注册表页,elixir,phoenix-framework,Elixir,Phoenix Framework,在我的编程Phoenix应用程序中,我最近清除了我的cookie,现在由于某种原因,it应用程序不允许我访问“注册”页面(用户/新) 它给了我一个“你必须登录才能访问该页面”的错误 和我的auth.excode: defmodule Rumbl.Auth do import Plug.Conn import Comeonin.Bcrypt, only: [checkpw: 2, dummy_checkpw: 0] import Phoenix.Controller alias R

在我的编程Phoenix应用程序中,我最近清除了我的cookie,现在由于某种原因,it应用程序不允许我访问“注册”页面(用户/新)

它给了我一个“你必须登录才能访问该页面”的错误

和我的
auth.ex
code:

defmodule Rumbl.Auth do
  import Plug.Conn
  import Comeonin.Bcrypt, only: [checkpw: 2, dummy_checkpw: 0]
  import Phoenix.Controller
  alias Rumbl.Router.Helpers

  def init(opts) do
    Keyword.fetch!(opts, :repo)
  end

  def call(conn, repo) do
    user_id = get_session(conn, :user_id)
    user = user_id && repo.get(Rumbl.User, user_id)
    assign(conn, :current_user, user)
  end

  def login_by_username_and_pass(conn, username, given_pass, opts) do
    repo = Keyword.fetch!(opts, :repo)
    user = repo.get_by(Rumbl.User, username: username)

    cond do
      user && checkpw(given_pass, user.password_hash) ->
        {:ok, login(conn, user)}
      user ->
        {:error, :unauthorized, conn}
      true ->
        dummy_checkpw()
        {:error, :not_found, conn}
    end
  end

  def login(conn, user) do
    conn
    |> assign(:current_user, user)
    |> put_session(:user_id, user.id)
    |> configure_session(renew: true)
  end

  def logout(conn) do
    configure_session(conn, drop: true)
  end

  def authenticate_user(conn, _opts) do
    if conn.assigns.current_user do
      conn
    else
      conn
      |> put_flash(:error, "You must be logged in to access that page")
      |> redirect(to: Helpers.page_path(conn, :index))
      |> halt()
    end
  end
end
任何指导都将不胜感激

  scope "/", Rumbl do
    pipe_through :browser # Use the default browser stack

    get "/", PageController, :index
    get "/users/:id", UserController, :show
    resources "/users", UserController, only: [:index, :show, :new, :create]
    resources "/sessions", SessionController, only: [:new, :create, :delete]
    resources "/videos", VideoController
    get "/watch/:id", WatchController, :show

  end
我的控制台如下所示:

[info] GET /users/new
[debug] Processing by Rumbl.UserController.show/2
  Parameters: %{"id" => "new"}
  Pipelines: [:browser]
和我的浏览器管道:

  pipeline :browser do
    plug :accepts, ["html"]
    plug :fetch_session
    plug :fetch_flash
    plug :protect_from_forgery
    plug :put_secure_browser_headers
    plug Rumbl.Auth, repo: Rumbl.Repo
  end

你能发布你的路由器代码,以验证它是否命中了正确的控制器功能吗?刚刚添加了它-似乎命中正确。@clery00你能在路由器中添加
:browser
管道的内容吗?详细信息太少,无法正确调试此功能。。。在执行注册页面的请求时,您能否添加控制台跟踪?@Dogbert pipeline已添加。您能否发布路由器代码,要验证其是否命中了正确的控制器功能?刚刚添加了它-似乎命中正确。@clery00您还可以在路由器中添加
:browser
管道的内容吗?详细信息太少,无法正确调试此功能。。。在执行注册页面的请求时,是否可以添加控制台跟踪?@Dogbert pipeline已添加。
  pipeline :browser do
    plug :accepts, ["html"]
    plug :fetch_session
    plug :fetch_flash
    plug :protect_from_forgery
    plug :put_secure_browser_headers
    plug Rumbl.Auth, repo: Rumbl.Repo
  end