public AuthModule(IUserManagementApiClient client, ITokenizer tokenizer)
        {
            Get["/login"] = parameters =>
            {
                return View["Index"];
            };

            Get["/logout"] = parameters =>
            {
                return this.Logout("/");
            };

            Post["/login"] = parameters =>
            {
                var model = this.Bind<AuthModel>();

                var token = client.Post("", "/login", null, null, new[] { new KeyValuePair<string, string>("Username", model.Username), new KeyValuePair<string, string>("Password", model.Password) });

                var userIdentity = tokenizer.Detokenize(token, Context, new DefaultUserIdentityResolver());

                Context.CurrentUser = userIdentity;

                return token;
            };

            Get["/forgotPassword/{username}"] = _ =>
            {
                ViewBag.Message = client.Put("", UserManagementApiRoute.User.RequestResetPassword, new[] { new KeyValuePair<string, string>("username", _.username + "") }, null, null);
                return View["Login"];
            };
        }
        public AuthorizationModule(IUserManagementApiClient userManagementApi)
        {
            Get[LiveAutoApiRoute.Authorization.GetChangePassword] = _ =>
            {
                var dto = new ChangePasswordDto(_.token, "");
                return View["index", dto];
            };

            Post[LiveAutoApiRoute.Authorization.PutChangePassword] = _ =>
            {
                var dto = this.Bind<ChangePasswordDto>();
                if ((dto.Password + "").Length < 5)
                {
                    dto.Message = "Password length must be at least 5 characters long";
                    return View["index", dto];                    
                }

                dto.Message = userManagementApi.Put("", "Users/ResetPassword/{token}", new[] { new KeyValuePair<string, string>("token", dto.Token + "") }, dto, null);
                if (!dto.Message.Contains("Password changed"))
                    dto.Message = "Error updating password";

                return View["index", dto];
            };
        }