/// <summary> /// 用户登录 /// </summary> /// <param name="userName">用户名</param> /// <param name="password">密码</param> /// <param name="registKey">极光registKey</param> /// <param name="loginDevice">登录设备</param> /// <param name="clientVersion">客户端版本</param> /// <returns></returns> public async Task<OperationResult> Login(string userName, string password, string registKey, LoginDevice loginDevice,string clientVersion) { userName.CheckNotNullOrEmpty("userName"); password.CheckNotNullOrEmpty("password"); SysUser sUser = await UserManager.FindByNameAsync(userName); var result = await UserManager.CheckPasswordAsync(sUser, password); if (sUser == null || sUser.UserType != UserType.App用户) { return new OperationResult(OperationResultType.QueryNull, "用户不存在", null); } else if (sUser.IsLocked) { return new OperationResult(OperationResultType.ValidError, "该账号已被冻结,请联系客服。", null); } else if (!await UserManager.CheckPasswordAsync(sUser, password)) { return new OperationResult(OperationResultType.ValidError, "用户名或密码错误", null); } else { //更新最后一次登录的RegistKey var theUser = await UserInfos.SingleOrDefaultAsync(p => p.SysUser.UserName == userName); if (theUser == null) { return new OperationResult(OperationResultType.ValidError, "数据错误", null); } if (theUser.RegistKey != registKey) { theUser.RegistKey = registKey; await UserInfoRepo.UpdateAsync(theUser); } //变更登录信息 await ResetToken(theUser, loginDevice, clientVersion); var loginInfo = new UserTokenDto() { Id = theUser.Id, NickName = theUser.SysUser.NickName, HeadPic = theUser.HeadPic, Sex = theUser.Sex, Token = theUser.Token }; return new OperationResult(OperationResultType.Success, "登录成功", loginInfo); } }
/// <summary> /// 用户登录 /// </summary> /// <param name="phoneNo">手机号</param> /// <param name="password">密码</param> /// <param name="registKey">极光registKey</param> /// <param name="loginDevice">登录设备</param> /// <param name="clientVersion">客户端版本</param> /// <returns></returns> public async Task<OperationResult> Login(string phoneNo, string password, string registKey, LoginDevice loginDevice, string clientVersion) { phoneNo.CheckNotNullOrEmpty("phoneNo"); phoneNo.CheckNotNullOrEmpty("password"); SysUser sUser = await UserManager.FindByNameAsync(phoneNo); var result = await UserManager.CheckPasswordAsync(sUser, password); if (!await UserManager.CheckPasswordAsync(sUser, password)) { return new OperationResult(OperationResultType.ValidError, "用户名或密码错误", null); } else { //更新最后一次登录的RegistKey var theUser = await UserInfos.SingleOrDefaultAsync(p => p.SysUser.PhoneNumber == phoneNo); if (theUser.RegistKey != registKey) { theUser.RegistKey = registKey; await UserInfoRepo.UpdateAsync(theUser); } //变更登录信息 await ResetToken(theUser, loginDevice, clientVersion); var loginInfo = new UserTokenDto() { Id = theUser.Id, NickName = theUser.SysUser.NickName, HeadPic = theUser.HeadPic, Token = theUser.Token }; return new OperationResult(OperationResultType.Success, "登录成功", loginInfo); } }