Packages

Integrates with RAD²'s API Auth

Retired package: Security issue - Private package

Current section

Files

Jump to
rad2_auth lib rad2 auth plug.ex
Raw

lib/rad2/auth/plug.ex

defmodule Rad2.Auth.Plug do
import Plug.Conn
require Logger
alias Rad2.Auth
def init(opts), do: opts
def call(conn, _opts) do
case get_req_header(conn, "authorization") do
[] -> send_unauthorized(conn)
[<<_type::bytes-size(6)>> <> " " <> token] ->
case Auth.validate_jwt(token) do
{:ok, companies} ->
assign(conn, :companies, companies)
{:error, _reason} ->
send_unauthorized(conn)
end
_another -> send_unauthorized(conn)
end
end
defp send_unauthorized(conn) do
headers = [
{"content-type", "application/json"}
]
body = ~s({"message": "unhautorized"})
conn
|> prepend_resp_headers(headers)
|> send_resp(401, body)
|> halt()
end
end