public string GenerateToken(string email, string Id) { var emailValid = PandaValidator.EmailIsValid(email); var idIsValid = int.TryParse(Id, out _); if (!emailValid || !idIsValid) { return(string.Empty); } var claims = new[] { new Claim(JwtRegisteredClaimNames.NameId, Id), new Claim(JwtRegisteredClaimNames.Email, email), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWT:Key"])); var credential = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var expiredAt = double.Parse(_configuration["JWT:ExpiredAt"]); var expiredTokenDate = DateTime.Now.AddMinutes(expiredAt); var token = new JwtSecurityToken( _configuration["JWT:Issuer"], _configuration["JWT:Audience"], claims, expires: expiredTokenDate, signingCredentials: credential); return(new JwtSecurityTokenHandler().WriteToken(token)); }
public async Task <Results <long> > CreateUser(PandaUserContract account) { var emailValid = PandaValidator.EmailIsValid(account.Email); if (!emailValid) { return(PandaResponse.CreateErrorResponse <long>("Email Invalid")); } var user = await _userManager.FindByEmailAsync(account.Email); if (user != null) { return(PandaResponse.CreateSuccessResponse(user.Id)); } var newAccount = new PandaUser { Email = account.Email, FirstName = account.FirstName, LastName = account.LastName, UserName = account.Email, CreatedAt = now, UpdatedAt = now, }; var result = await _userManager.CreateAsync(newAccount, account.Password); if (result.Succeeded) { return(PandaResponse.CreateSuccessResponse(newAccount.Id)); } else { return(PandaResponse.CreateErrorResponse <long>(result.Errors.Select(s => s.Code + " : " + s.Description).ToArray())); } }
public void EmailValidTest(string email, bool isValid) { var result = PandaValidator.EmailIsValid(email); Assert.Equal(result, isValid); }