/signed_request

signed request encoder/decoder for elixir

Primary LanguageElixirMIT LicenseMIT

SignedRequest

SignedRequest is an Elixir module created to sign request query strings using HMAC.

Installation

def deps do
  [{:signed_request, "~> 0.1.0"}]
end

Configuration

config :signed_request, :secret_key, "foo"

Encoding query

iex> SignedRequest.SignedURI.encode_query(%{size: 512})
"sig=7dc5fc28fa59ff89dff64bed05920978471f10ced63aca98452b54574a3aef0e&size=512"

Decoding query string

iex> SignedRequest.SignedURI.decode_query("sig=7dc5fc28fa59ff89dff64bed05920978471f10ced63aca98452b54574a3aef0e&size=512")
{:ok, %{
  "sig" => "7dc5fc28fa59ff89dff64bed05920978471f10ced63aca98452b54574a3aef0e",
  "size" => "512"}
}

iex> SignedRequest.SignedURI.decode_query("sig=invalid&size=512")
{:error, :invalid_hmac}