<div dir="ltr"><div>Hi,</div><div><br></div><div><br></div><div>I am using cowboy+cowboy_session for building websites. </div><div><br></div><div>each route has something similar as shown below:</div><div><br></div><div><br></div><div><div>-module(get_pageX).</div><div>-behaviour(cowboy_http_handler).</div><div><br></div><div>-export([init/3]).</div><div>-export([handle/2]).</div><div>-export([terminate/3]).</div><div><br></div><div>-record(state, {</div><div>}).</div><div><br></div><div>init(_, Req, _Opts) -></div><div><span class="" style="white-space:pre">     </span>{ok, Req, #state{}}.</div><div><br></div><div>handle(Req, State=#state{}) -></div><div><br></div><div> </div><div><br></div><div>      case  cowboy_session:get("loggedin",  Req) of</div><div><br></div><div>         true ->   </div><div>                       #do something here</div><div>        </div><div>          _ -></div><div>                    #not logged in.</div><div><br></div><div>       end,</div><div><br></div><div><br></div><div><br></div><div><span class="" style="white-space:pre">  </span>{ok, ReqFinal} = cowboy_req:reply(200,</div><div><span class="" style="white-space:pre">                                     </span>[{<<"content-type">>, <<"text/html">>}],</div><div>       <span class="" style="white-space:pre">                            <<"Some response">></span>,</div><div>         <span class="" style="white-space:pre">           </span>Req),</div><div><br></div><div><span class="" style="white-space:pre">     </span>{ok, ReqFinal, State}.</div><div><br></div><div>terminate(_Reason, _Req, _State) -></div><div><span class="" style="white-space:pre">       </span>ok.</div></div><div><br></div><div><br></div><div>The above CASE(code) is repeated for every route to check if the user is logged in, is there a better way to organize this?</div><div><br></div><div>what I am looking for is a way to check if the user is logged in and if not, redirect to login route.</div><div><br></div><div><br></div><div>PS: I am new to Erlang</div><div><br></div><div><br></div><div>Regards,</div><div>Avinash D' Silva <br></div><div><br></div><div><br></div>
</div>