public IActionResult Authenticate([FromBody] GebruikerDto gebruikerDto) { var gebruiker = _repository.Authenticate(gebruikerDto.Gebruikersnaam, gebruikerDto.Wachtwoord); if (gebruiker == null) { return(BadRequest(new { message = "Gebruikersnaam of wachtwoord is fout" })); } var gebruikersRol = gebruiker.GebruikersRol; var tokenHandler = new JwtSecurityTokenHandler(); byte[] key = Encoding.ASCII.GetBytes(_appSettings.Secret); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, gebruiker.Id.ToString()), }), Expires = DateTime.UtcNow.AddDays(7), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; // Voeg rol toe aan jwt-token afhankelijk van de rol van de gebruiker switch (gebruikersRol) { case GebruikersRol.Leerling: tokenDescriptor.Subject.AddClaim(new Claim(ClaimTypes.Role, nameof(GebruikersRol.Leerling))); break; case GebruikersRol.Leerkracht: tokenDescriptor.Subject.AddClaim(new Claim(ClaimTypes.Role, nameof(GebruikersRol.Leerkracht))); break; case GebruikersRol.Werkgever: tokenDescriptor.Subject.AddClaim(new Claim(ClaimTypes.Role, nameof(GebruikersRol.Werkgever))); break; } var token = tokenHandler.CreateToken(tokenDescriptor); string tokenString = tokenHandler.WriteToken(token); // Geeft basis gebruiker info terug (zonder wachtwoord) en token voor op te slaan in client // Gebruikersrol en concretGebruikerId kunnen eigenlijk gelezen worden uit token return(Ok(new { gebruiker.Id, gebruiker.Gebruikersnaam, gebruiker.GebruikersRol, gebruiker.ConcreteGebruikerId, Token = tokenString })); }
public IActionResult Register([FromBody] GebruikerDto gebruikerDto) { // Map Dto to Gebruiker var gebruiker = _mapper.Map <Gebruiker>(gebruikerDto); try { _repository.CreateGebruiker(gebruiker, gebruikerDto.Wachtwoord); return(Ok()); } catch (AppException e) { return(BadRequest(new { message = e.Message })); } }
public IActionResult Update(int id, [FromBody] GebruikerDto gebruikerDto) { // Map Dto to Gebruiker var gebruiker = _mapper.Map <Gebruiker>(gebruikerDto); gebruiker.Id = id; try { _repository.UpdateGebruiker(gebruiker, gebruikerDto.Wachtwoord); return(Ok()); } catch (AppException ex) { return(BadRequest(new { message = ex.Message })); } }
public async Task <ActionResult <IEnumerable <VriendDto> > > GetVrienden() { List <VriendDto> vrienden = new List <VriendDto>(); var vVrienden = await _context.Vrienden.Include(v => v.Aanvrager).Include(v => v.Ontvanger).ToListAsync(); foreach (var v in vVrienden) { GebruikerDto gebruikerdto1 = new GebruikerDto() { GebruikerID = v.Aanvrager.GebruikerID, Email = v.Aanvrager.Email, Gebruikersnaam = v.Aanvrager.Gebruikersnaam, Wachtwoord = v.Aanvrager.Wachtwoord, ImageUrl = v.Aanvrager.ImageUrl }; GebruikerDto gebruikerdto2 = new GebruikerDto() { GebruikerID = v.Ontvanger.GebruikerID, Email = v.Ontvanger.Email, Gebruikersnaam = v.Ontvanger.Gebruikersnaam, Wachtwoord = v.Ontvanger.Wachtwoord, ImageUrl = v.Ontvanger.ImageUrl }; vrienden.Add(new VriendDto() { VriendID = v.VriendID, isBevestigd = v.isBevestigd, Aanvrager = gebruikerdto1, Ontvanger = gebruikerdto2 }); } return(vrienden); }