public async Task <Result <int> > UpdateUserAsync([Required][FromBody] AdminUserUpdatePasswordCommand request, CancellationToken cancellationToken = default) { var admin = await db.Context.AdminUser.FindAsync(request.Id); request.NewPassword = Encrypt.Md5By32(request.NewPassword); request.OldPassword = Encrypt.Md5By32(request.OldPassword); if (!admin.Password.Equals(request.OldPassword)) { Failure.Error("旧密码错误"); } var res = await db.UpdateAsync <AdminUserEntity>(c => c.Id == request.Id, c => new AdminUserEntity { Password = request.NewPassword }, cancellationToken); if (res > 0) { return(RestFull.Success(data: res)); } else { return(RestFull.Fail(data: res)); } }
public async Task <AdminUserDto> LoginAsync(AdminUserLoginCommand request, CancellationToken cancellationToken) { var user = default(AdminUserEntity); request.Password = Encrypt.Md5By32(request.Password); var loginWay = ""; if (!Valid.IsMobileNumberSimple(request.Account)) { user = await db.Context.AdminUser.Where(c => c.UserName.Equals(request.Account)).FirstOrDefaultAsync(cancellationToken); if (user == null) { Failure.Error("账号不存在"); } loginWay = "Mobile"; } else { user = await db.Context.AdminUser.Where(c => c.Mobile.Equals(request.Account)).FirstOrDefaultAsync(cancellationToken); if (user == null) { Failure.Error("手机号码不存在"); } loginWay = "UserName"; } if (!user.Password.Equals(request.Password)) { Failure.Error("密码错误"); } if (user.Status != Status.Show) { Failure.Error("您的帐号禁止登录,请与管理员联系!"); } user.LoginCount += 1; user.LoginLastTime = DateTime.Now; user.LoginLastIp = Web.IP; user.LoginRecords.Add(new LoginRecordEntity { AdminId = user.Id, LoginIp = user.LoginLastIp, LoginTime = user.LoginLastTime, LoginWay = loginWay }); db.Update(user); return(mapper.Map <AdminUserDto>(user)); }
public async Task <int> UpdateAsync(AdminUserUpdatePasswordCommand request, CancellationToken cancellationToken) { var admin = await db.Context.AdminUser.FindAsync(request.Id); request.NewPassword = Encrypt.Md5By32(request.NewPassword); request.OldPassword = Encrypt.Md5By32(request.OldPassword); if (!admin.Password.Equals(request.OldPassword)) { Failure.Error("旧密码错误"); } return(await db.UpdateAsync <AdminUserEntity>(c => c.Id == request.Id, c => new AdminUserEntity { Password = request.NewPassword }, cancellationToken)); }
public async Task <(string, string)> LoginAsync(AdminUserLoginCommand request, CancellationToken cancellationToken = default) { var user = default(AdminUserEntity); request.Password = Encrypt.Md5By32(request.Password); var loginWay = ""; if (!Valid.IsMobileNumberSimple(request.Account)) { user = await db.Context.AdminUser.Where(c => c.UserName.Equals(request.Account)).FirstOrDefaultAsync(cancellationToken); if (user == null) { Failure.Error("账号不存在"); } loginWay = "Mobile"; } else { user = await db.Context.AdminUser.Where(c => c.Mobile.Equals(request.Account)).FirstOrDefaultAsync(cancellationToken); if (user == null) { Failure.Error("手机号码不存在"); } loginWay = "UserName"; } if (!user.Password.Equals(request.Password)) { Failure.Error("密码错误"); } if (user.Status != Status.Show) { Failure.Error("您的帐号禁止登录,请与管理员联系!"); } user.LoginCount += 1; user.LoginLastTime = DateTime.Now; user.LoginLastIp = Web.IP; user.LoginRecords.Add(new LoginRecordEntity { AdminId = user.Id, LoginIp = user.LoginLastIp, LoginTime = user.LoginLastTime, LoginWay = loginWay }); db.Update(user); // 生成 token var accessToken = JWTEncryption.Encrypt(new Dictionary <string, object> { { userId, user.Id }, { userName, user.UserName } }); // 生成 刷新token var refreshToken = JWTEncryption.GenerateRefreshToken(accessToken); // 设置 Swagger 自动登录 Web.HttpContext.SigninToSwagger(accessToken); // 设置刷新 token Web.HttpContext.Response.Headers["x-access-token"] = refreshToken; return(accessToken, refreshToken); }