Skip to content

Leandro-Moreno/ex_turnstile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ExTurnstile

Hex.pm Docs

Cloudflare Turnstile server-side token verification for Elixir.

Built by Shikotech@shiko.vet

Installation

{:ex_turnstile, "~> 0.1"}

Configuration

config :ex_turnstile, secret_key: System.get_env("TURNSTILE_SECRET_KEY")

Usage

case ExTurnstile.verify(token) do
  :ok -> # Valid, proceed
  {:error, reason} -> # Invalid token
end

# With client IP (recommended)
ExTurnstile.verify(token, remote_ip: "1.2.3.4")

Phoenix Example

def create(conn, %{"turnstile_token" => token} = params) do
  ip = to_string(:inet.ntoa(conn.remote_ip))

  case ExTurnstile.verify(token, remote_ip: ip) do
    :ok -> do_create(conn, params)
    {:error, reason} -> conn |> put_status(403) |> json(%{error: reason})
  end
end

Links

License

MIT

About

Cloudflare Turnstile server-side verification for Elixir — by shiko.vet

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages