public string GetToken(Account user, DateTime? expires) { // Here, you should create or look up an identity for the user which is being authenticated. // For now, just creating a simple generic identity. var identity = new ClaimsIdentity(new GenericIdentity(user.Email, "TokenAuth"), new[] { new Claim("UserId", user.Id.ToString(), ClaimValueTypes.Integer), new Claim("UserEmail", user.Email, ClaimValueTypes.Email) }); var securityToken = _jwtSecurityTokenHandler.CreateToken(new SecurityTokenDescriptor { Audience = _tokenAuthOption.Audience, Issuer = _tokenAuthOption.Issuer, Subject = identity, Expires = expires, SigningCredentials = _tokenAuthOption.SigningCredentials }); return _jwtSecurityTokenHandler.WriteToken(securityToken); }
public void Create(string pseudo, string email, string name, string firstName, string password) { if (_accountRepository.All().Any(a => a.Email.Equals(email))) throw new ExistingEmailException(); else if (_accountRepository.All().Any(b => b.Pseudo.Equals(pseudo))) throw new ExistingPseudoException(); var account = new Account { Email = email, Password = Encrypt(password), IsOwner = false, Pseudo = pseudo, User = new User { FirstName = firstName, Name = name } }; account.User.Account = account; _accountRepository.Save(account); _userRepository.Save(account.User); }