Elixir 编程Phoenix-无法访问注册表页
在我的编程Phoenix应用程序中,我最近清除了我的cookie,现在由于某种原因,it应用程序不允许我访问“注册”页面(用户/新) 它给了我一个“你必须登录才能访问该页面”的错误 和我的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
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