コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }