<div dir="ltr">Hello,<div><br></div><div>The tough problem that happstack-authenticate faces is that it has to be application agnostic. It doesn't really know much at all about how your application handles routing, how it deals with initializing and cleaning up database connections, etc. So, it all it can do is provide you with the functions you will need to initialize, route, and shutdown the authentication stuff.</div><div><br></div><div>routeAuthentication is absolutely necessary -- how else would requests get routed to the authentication library? </div><div><br></div><div>The authenticateState is provided in case you do want direct access to it, and so that you can pass it to routeAuthenticate. But you don't really need to carry it around everywhere -- you need only pass it to your routing layer.</div><div><br></div><div><a href="https://github.com/Happstack/happstack-authenticate/blob/master/demo/Main.hs">https://github.com/Happstack/happstack-authenticate/blob/master/demo/Main.hs</a></div><div><br></div><div>You can see there that it passes the routeAuthentication function into a the 'implSite' in the routing monad. But the values are not stored in State or anything.</div><div><br></div><div><div>In the example, everything is done in main :: IO (), because that is pretty much all the application does.</div></div><div><br></div><div>In  clckwrks, things are deferred until much later. In fact, the authentication layer in clckwrks is implemented as a clckwrks plugin. So, it does not initialize the authentication until it gets around to initializing the plugins:</div><div><br></div><div><a href="https://github.com/clckwrks/clckwrks/blob/master/Clckwrks/Authenticate/Plugin.hs">https://github.com/clckwrks/clckwrks/blob/master/Clckwrks/Authenticate/Plugin.hs</a></div><div><br></div><div> - jeremy</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Aug 3, 2015 at 6:02 AM, Corentin Dupont <span dir="ltr"><<a href="mailto:corentin.dupont@gmail.com" target="_blank">corentin.dupont@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Hello,<br><br></div>I'm a bit confused about the <span style="font-family:monospace,monospace"> routeAuthenticate</span> and <span style="font-family:monospace,monospace">authenticateState</span> bits in the new happstack-authenticate.<br><br></div>It seems that I have to do this in the beginning of my application:<br><div><div><div><span style="font-family:monospace,monospace"><br>(_, routeAuthenticate, authenticateState) <-<br>      liftIO $ initAuthentication Nothing (const $ return True)<br>        [ initPassword "<a href="http://localhost:8000/#resetPassword" target="_blank">http://localhost:8000/#resetPassword</a>" "<a href="http://example.org" target="_blank">example.org</a>"<br>        , initOpenId]</span><br><br></div><div>Where this should be done? In the main? If possible I'd prefer to delay it because my main is web-agnotic.<br></div><div>Where should I store those two values? Should I put them in my monad stack (I have a StateT)?<br></div><div>Is the <span style="font-family:monospace,monospace">routeAuthenticate</span><span style="font-family:arial,helvetica,sans-serif"> really necessary? It looks a bit cumbersome to carry it around everywhere in the states.</span><span style="font-family:monospace,monospace"><br></span><span style="font-family:arial,helvetica,sans-serif"><br></span></div><div><span style="font-family:arial,helvetica,sans-serif">Thanks,<br></span></div><div><span style="font-family:arial,helvetica,sans-serif">Corentin</span><span class="HOEnZb"><font color="#888888"><span style="font-family:monospace,monospace"><br></span></font></span></div></div></div></div><span class="HOEnZb"><font color="#888888">

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups "HAppS" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:happs+unsubscribe@googlegroups.com" target="_blank">happs+unsubscribe@googlegroups.com</a>.<br>
To post to this group, send email to <a href="mailto:happs@googlegroups.com" target="_blank">happs@googlegroups.com</a>.<br>
Visit this group at <a href="http://groups.google.com/group/happs" target="_blank">http://groups.google.com/group/happs</a>.<br>
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank">https://groups.google.com/d/optout</a>.<br>
</font></span></blockquote></div><br></div>