Ich versuche, eine Plug
zu schreiben, die Benutzer authentifizieren (Sitzung tatsächlich überprüfen). Ich habe Schwierigkeiten, Umleitungsroute zu bekommen. Ich denke, es liegt daran, dass die Routengenerierung stattfindet, nachdem dieser Plug aktiviert wurde.Umleitung in einem Stecker in Phoenix Framework
Auf jeden Fall habe ich einen Fehler wie folgt aus: undefined function TestApp.page_path/2
In regelmäßigen Kontext page_path/2
existiert offensichtlich und arbeitet.
defmodule TestApp.Plugs.Authenticate do
import Plug.Conn
def init(default), do: default
def call(conn, _) do
user = Plug.Conn.get_session(conn, :current_user)
if not is_nil(user) do
assign(conn, :user, user)
else
conn
|> Phoenix.Controller.put_flash(:warning, "User is not authenticated.")
|> Phoenix.Controller.redirect(to: TestApp.page_path(conn, :index))
|> halt
end
end
end
Was ist Seitenpfad? Wenn es eine Funktion ist, können Sie es –
posten, es ist innerhalb des Routers mit 'get '/", PageController,: index' –
erzeugt. Funktioniert das? Phoenix.Controller.redirect (zu: TestApp.Router.Helpers.page_path (conn,: index, "Hallo Welt")) –