Integrates authentication within the routes and prevents controllers from being loaded when the user isn't authorized. Ensures we also have a /login route and allows routes to redirect when auth fails.