Packages
guard
0.15.3
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/jwt_module.ex
defmodule Guard.Jwt do
@moduledoc false
use Guardian,
otp_app: :guard,
permissions: Application.get_env(:guard, Guard.Guardian)[:permissions]
use Guardian.Permissions.Bitwise
alias Guard.{Repo, User}
def subject_for_token(%User{} = user, _claims) do
{:ok, "User:#{user.id}"}
end
def subject_for_token(_, _), do: {:error, :unknown_resource}
def load_resource("User:" <> id), do: Repo.get(User, id)
def load_resource(resource), do: Guard.ApiKey.load_resource(resource)
def resource_from_claims(%{"sub" => sub} = _claims) do
{:ok, load_resource(sub)}
end
def resource_from_claims(_claims), do: {:error, :unknown_resource}
def build_claims(claims, _resource, opts) do
claims =
claims
|> encode_permissions_into_claims!(Keyword.get(opts, :perms))
{:ok, claims}
end
end