public virtual async Task <NetResult <ResponseData> > RestorePassword(string userName) { try { var otp = RepositoryState.RandomInt(); var user = await _user.GetByUserName(userName); if (user == null) { throw new CoreException("User not found"); } user.Token = RepositoryState.GenerateRandomString(24); _user.SetOtp(user, otp); SenNotify(user, otp); return(new ResponseData() { Result = new { Token = user.Token, UserName = user.UserName, IsSendSms = true } }); } catch (Exception ext) { return(ext); } }
public LoginResult Login(TUser user) { if (user == null) { return(null); } var roles = user.UserRoles.Select(m => m.MongoRole).ToList(); var jwt = AuthModalOption.GenerateClaims <TUser, MongoRole, string>(user, roles); var accessToken = AuthModalOption.SetToken <TUser, string>(jwt, user); var refreshToken = RepositoryState.GenerateRandomString(24); user.RefreshToken = refreshToken; _repo.Update(user); LoginResult loginResult = new LoginResult() { AccessToken = accessToken, RefreshToken = refreshToken, UserName = user.UserName, UserId = user.Id, IsSentOtp = false }; return(loginResult); }