public async Task <JwtTokenModel> GenerateJwtToken(User userDetails) { if (string.IsNullOrWhiteSpace(userDetails.UserEmail) || string.IsNullOrWhiteSpace(userDetails.UserAccount)) { throw new ArgumentException("Missing important details"); } // Needs to get the User Object from the Database and use the same for creating the Claims/Token // As Shown below //var users = await _userOperations.GetUsersByEmail(userDetails.UserEmail).ConfigureAwait(false); //var user = users.FirstOrDefault(x => x.UserAccount.Equals(userDetails.UserAccount, StringComparison.InvariantCultureIgnoreCase)); //if(user == null) // throw new ClaimsException("User email and account mismatch"); //if(!user.UserEmailVerified) // throw new ClaimsException("User not verified"); // For now using the same parameter as user object from DB... We need to remove it var user = userDetails; var claims = new List <Claim> { new Claim(ClaimsConstants.UserEmail, user.UserEmail), new Claim(ClaimsConstants.UserAccountAddess, user.UserAccount), new Claim(ClaimsConstants.UserId, user.UserId.ToString()), new Claim(ClaimsConstants.UserRole, user.UserRole ?? ""), new Claim(ClaimsConstants.UserEmailVerified, user.UserEmailVerified.ToString()) }; return(_jwtHelper.CreateJwtToken(claims)); }