Packages

A simple library for using redis as the token blacklist storage with Authex.

Current section

Files

Jump to
authex_blacklist_redis lib authex redis conn.ex
Raw

lib/authex/redis/conn.ex

defmodule Authex.Redis.Conn do
use Supervisor
def start_link(opts \\ []) do
Supervisor.start_link(__MODULE__, opts, name: __MODULE__)
end
def init(opts) do
import Supervisor.Spec
pool_size = Keyword.get(opts, :pool_size, 3)
conn_url = Keyword.get(opts, :url)
conn_opts = Keyword.take(opts, [:host, :port, :password, :database])
redis_opts = conn_url || conn_opts
conn_names = names(pool_size)
children = Enum.map(conn_names, fn({index, name}) ->
worker(Redix, [redis_opts, [name: name]], id: {Redix, index})
end)
supervise(children, strategy: :one_for_one)
end
def names(size) do
Enum.map(1..size, fn(index) -> {index, :"Elixir.Authex.Redis.Conn.#{index}"} end)
end
end