Packages
guard
0.17.0
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 Guard.Controller
alias Guard.{Authenticator, Users}
plug(Guardian.Plug.EnsureAuthenticated, claims: %{"typ" => "access"})
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