Packages
guard
0.11.2
0.19.1
0.19.0
0.18.0
0.17.2
0.17.1
0.17.0
0.16.3
0.16.2
0.16.1
0.16.0
0.15.3
0.15.2
0.15.1
0.15.0
0.14.9
0.14.8
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.1
0.13.0
0.12.9
0.12.8
0.12.7
0.12.6
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
0.11.3
0.11.2
0.11.1
0.11.0
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.0
0.8.0
0.7.1
0.7.0
0.6.1
0.6.0
0.5.0
0.4.1
0.4.0
0.3.0
0.2.0
0.1.0
Useful package for dealing with user authentication and signup
Current section
Files
Jump to
Current section
Files
lib/guard/controller/key_controller.ex
defmodule Guard.Controller.KeyController do
use Phoenix.Controller
alias Guard.{Authenticator, Users}
import Guard.Controller, only: [send_error: 3]
plug(Guardian.Plug.EnsureAuthenticated, claims: %{"typ" => "access"})
def call(conn, opts) do
try do
super(conn, opts)
rescue
error -> send_error(conn, error, :internal_server_error)
end
end
def create_key(conn, params) do
permissions = Map.get(params, "permissions", %{})
with {:ok, key} <- Users.create_api_key(Authenticator.authenticated_user!(conn), permissions) do
conn |> json(key)
end
end
def list_keys(conn, _) do
keys = Users.list_api_keys(Authenticator.authenticated_user!(conn))
conn
|> json(keys)
end
def revoke_key(conn, %{"key" => key}) do
response = Guard.ApiKey.revoke(key)
with {:ok, _} <- response do
conn |> json(%{key: key})
else
_any ->
conn |> put_status(:not_found)
end
end
end