goth alternatives and similar packages
Based on the "Authentication" category.
Alternatively, view goth alternatives based on common mentions on social networks and blogs.
-
coherence
Coherence is a full featured, configurable authentication system for Phoenix -
phx_gen_auth
An authentication system generator for Phoenix 1.5 applications. -
guardian_db
Guardian DB integration for tracking tokens and ensuring logout cannot be replayed. -
Phauxth
Not actively maintained - Authentication library for Phoenix, and other Plug-based, web applications -
Shield
Shield is an OAuth2 Provider hex package and also a standalone microservice build top of the Phoenix Framework and 'authable' package. -
samly
Elixir Plug library to enable SAML 2.0 SP SSO in Phoenix/Plug applications. -
elixir_auth_google
👤Minimalist Google OAuth Authentication for Elixir Apps. Tested, Documented & Maintained. Setup in 5 mins. 🚀 -
Paseto
An Elixir implementation of Paseto (Platform-Agnostic Security Tokens) -
passwordless_auth
A library for simple passwordless authentication -
aeacus
A simple, secure, and highly configurable Elixir identity [username | email | id | etc.]/password authentication module to use with Ecto. -
phoenix_client_ssl
Set of Plugs / Lib to help with SSL Client Auth. -
sigaws
An Elixir library to sign and verify HTTP requests using AWS Signature V4 -
ueberauth_active_directory
Uberauth strategy for Active Directory authentication. -
exBankID
exBankID is a simple stateless API-client for the Swedish BankID API -
zachaeus
An easy to use licensing system, using asymmetric cryptography to generate and validate licenses.
Learn Elixir in as little as 12 Weeks
Do you think we are missing an alternative of goth or a related project?
Popular Comparisons
README
Goth
Google + Auth = Goth
A simple library to generate and retrieve OAuth2 tokens for use with Google Cloud Service accounts.
Installation
Note: below are instructions for using Goth v1.3+. For more information on earlier versions of Goth, see v1.2.0 documentation on hexdocs.pm.
- Add
:goth
to your list of dependencies inmix.exs
.
def deps do
[
{:goth, "~> 1.3"}
]
end
- Add Goth to your supervision tree:
defmodule MyApp.Application do
use Application
def start(_type, _args) do
credentials =
"GOOGLE_APPLICATION_CREDENTIALS_JSON"
|> System.fetch_env!()
|> Jason.decode!()
source = {:service_account, credentials}
children = [
{Goth, name: MyApp.Goth, source: source}
]
Supervisor.start_link(children, strategy: :one_for_one)
end
end
If you set GOOGLE_APPLICATION_CREDENTIALS
or
GOOGLE_APPLICATION_CREDENTIALS_JSON
, have a
~/.config/gcloud/application_default_credentials.json
file, or deploy your
application to Google Cloud, you can omit the :source
option:
def start(_type, _args) do
children = [
{Goth, name: MyApp.Goth}
]
Supervisor.start_link(children, strategy: :one_for_one)
end
If you want to use multiple credentials, you may consider doing:
def start(_type, _args) do
Supervisor.start_link(servers(), strategy: :one_for_one)
end
defp servers do
servers = [
{MyApp.Cred1, source1},
...
{MyApp.CredN, source2}
]
for {name, source} <- servers do
Supervisor.child_spec({Goth, name: name, source: source}, id: name)
end
end
- Fetch the token:
iex> Goth.fetch!(MyApp.Goth)
%Goth.Token{
expires: 1453356568,
token: "ya29.cALlJ4ICWRvMkYB-WsAR-CZnExE459PA7QPqKg5nei9y2T9-iqmbcgxq8XrTATNn_BPim",
type: "Bearer",
...
}
See Goth.start_link/1
for more information about possible configuration options.
Upgrading from Goth 1.2
See [Upgrading from Goth 1.2](UPGRADE_GUIDE.md) guide for more information.
Community resources
Copyright and License
Copyright (c) 2016 Phil Burrows
This work is free. You can redistribute it and/or modify it under the terms of the MIT License. See the [LICENSE.md](./LICENSE.md) file for more details.
*Note that all licence references and agreements mentioned in the goth README section above
are relevant to that project's source code only.