I want to create
Plug for user Authorization,so i would to know what kind plug to use,
Functioal or Module?
I want to create
If your plug needs some intialisation, go for a module-plug, if not use a function-plug.
I need make query to database with user_id and dept_id , so i can do that query on
init , from that then i pass the result to
call, so in this scenario, module plug best approach right?
dept_id comming from? Are you able to write
plug YourAuth, user_id: user_id, dept_id: dept_id in the code?
I always thought that function plugs can only be used in the module in which they are defined. Therefore I always use module plugs when I need to reuse them in other modules.
Is there any way to reuse function plugs defined in another module?
I am using guardian as auth framewrok so i can get logged in user id by using
Guardian.Plug.current_resource(conn) and dept_id will come from
url , for example
Is this information available in
conn? If you can answer this with yes, you probably won’t need a module plug.
An approach I often use, is to start with a module-plug, and just don’t do anything in its
init/1 function. This way I have better separation of concerns when I have multiple plugs and can extend easily without having to rename the plug if I really need the init-stuff.
thanks man, its better to start create
module plug without doing anything in
init/1, so that we can modify plug definitiion in one place
I believe imported functions can be used with the
plug :atom syntax also.
Eg https://hexdocs.pm/phoenix/Phoenix.Controller.html#accepts/2 is imported from
use Phoenix.Router, making it available to use in a Router pipeline.