编程Phoenix - 无法访问注册页面

时间:2016-11-27 14:45:52

标签: elixir phoenix-framework

在我的Programming Phoenix应用程序中,我最近清除了我的cookie,现在由于某种原因,它应用程序将不允许我访问“注册”页面(users / new)。

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

auth.ex

我的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

我的浏览器管道:

Similar Code in Xamarin C#

0 个答案:

没有答案