Packages

Wechat API wrapper in Elixir.

Current section

Files

Jump to
wechat_cc lib wechat plugs request_validator.ex
Raw

lib/wechat/plugs/request_validator.ex

defmodule Wechat.Plugs.RequestValidator do
@moduledoc false
import Plug.Conn
import Wechat.Config, only: [token: 0]
alias Wechat.Utils.SignatureVerifier
def init(opts) do
opts
end
def call(conn, _opts) do
conn = fetch_query_params(conn)
%{"timestamp" => timestamp, "nonce" => nonce,
"signature" => signature} = conn.query_params
if SignatureVerifier.verify?([token(), timestamp, nonce], signature) do
conn
else
conn |> send_resp(400, "") |> halt
end
end
end