mirror of
https://github.com/kevin-DL/phoenix_api_template.git
synced 2026-01-11 18:54:33 +00:00
Protect endpoints
This commit is contained in:
11
lib/phoenix_api_template_web/auth/guardian_error_handler.ex
Normal file
11
lib/phoenix_api_template_web/auth/guardian_error_handler.ex
Normal file
@@ -0,0 +1,11 @@
|
||||
defmodule PhoenixApiTemplateWeb.Auth.GuardianErrorHandler do
|
||||
import Plug.Conn
|
||||
|
||||
def auth_error(conn, {type, _reason}, _opts) do
|
||||
body = Jason.encode!(%{error: to_string(type)})
|
||||
|
||||
conn
|
||||
|> put_resp_content_type("application/json")
|
||||
|> send_resp(401, body)
|
||||
end
|
||||
end
|
||||
11
lib/phoenix_api_template_web/auth/pipeline.ex
Normal file
11
lib/phoenix_api_template_web/auth/pipeline.ex
Normal file
@@ -0,0 +1,11 @@
|
||||
defmodule PhoenixApiTemplateWeb.Auth.Pipeline do
|
||||
use Guardian.Plug.Pipeline,
|
||||
otp_app: :phoenix_api_template,
|
||||
module: PhoenixApiTemplateWeb.Auth.Guardian,
|
||||
error_handler: PhoenixApiTemplateWeb.Auth.GuardianErrorHandler
|
||||
|
||||
plug Guardian.Plug.VerifySession
|
||||
plug Guardian.Plug.VerifyHeader
|
||||
plug Guardian.Plug.EnsureAuthenticated
|
||||
plug Guardian.Plug.LoadResource
|
||||
end
|
||||
@@ -18,6 +18,10 @@ defmodule PhoenixApiTemplateWeb.Router do
|
||||
plug(:accepts, ["json"])
|
||||
end
|
||||
|
||||
pipeline :auth do
|
||||
plug PhoenixApiTemplateWeb.Auth.Pipeline
|
||||
end
|
||||
|
||||
scope "/api", PhoenixApiTemplateWeb do
|
||||
pipe_through(:api)
|
||||
|
||||
@@ -25,4 +29,10 @@ defmodule PhoenixApiTemplateWeb.Router do
|
||||
post("/register", UserController, :create)
|
||||
post("/login", UserController, :sign_in)
|
||||
end
|
||||
|
||||
scope "/api", PhoenixApiTemplateWeb do
|
||||
pipe_through([:api, :auth])
|
||||
|
||||
get "/users/by_id/:id", UserController, :show
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user