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]; }; }