defmodule TestPlugAuth do # import Plug.Conn import TokenHelper import TestPlugAuth.Config import TestPlugAuth.User defmacro __using__(options) do IO.puts("options in using: #{inspect options}") behaviour = get_module(Keyword.get(options, :module)) quote do alias unquote(behaviour), as: Mod def init(options) do options end def call(conn, options) do IO.puts("conn: #{inspect conn}") user_id = conn.body_params[options[:key]] IO.puts("user_id: #{inspect user_id}") IO.puts("req_headers: #{inspect conn.req_headers}") auth = get_token(conn.req_headers) IO.puts("authorization: #{inspect auth}") IO.puts("test_check_user: #{inspect Mod.get_user_id(user_id)}") IO.puts("options_call: #{inspect options}") secret_key = get_secret_key IO.puts("secret_key: #{inspect secret_key}") {:ok, jwt_body} = verify_jwt(auth, secret_key, Keyword.get(options, :aud), Keyword.get(options, :iss)) IO.puts("verify_jwt: #{inspect jwt_body}}") IO.puts("sub: #{inspect jwt_body["sub"]}}") IO.puts("validate_user: #{inspect validate_user_id(user_id, jwt_body["sub"], Mod.get_user_id(user_id))}") conn end end end # def init(options) do # options # end # def call(conn, options) do # IO.puts("conn: #{inspect conn}") # IO.puts("user_id: #{inspect conn.body_params[options[:key]]}") # IO.puts("req_headers: #{inspect conn.req_headers}") # auth = get_token(conn.req_headers) # IO.puts("authorization: #{inspect auth}") # IO.puts("test_check_user: #{inspect User.check_user()}") # IO.puts("options_call: #{inspect options}") # conn # end # def check_user do # "test method in plug" # end end