public async Task <IActionResult> GetUserProfile() { var claim = User.Claims; string userId = User.Claims.First(c => c.Type == "userID").Value; var user = await _userBL.GetById(int.Parse(userId)); var role = await _roleBl.GetById(user.RoleId); user.Role = role; UserDetails userData = _mapper.Map <Models.UserDetails>(user); try { int premisesId = int.Parse(User.Claims.First(c => c.Type == "premisesID").Value); var premises = await _premisesBL.GetById(premisesId); userData.PremisesName = premises.Name; var premisesType = await _premisesTypeBL.GetById(premises.TypeId); userData.PremisesType = premisesType.Name; } catch (Exception e) { return(Ok(new { data = userData })); } //return user; return(Ok(new { data = userData })); }
public async Task <IActionResult> Login([FromBody] Models.LoginRequest login) { try { var user = await _userBL.CheckLogin(login); user.Role = await _roleBL.GetById(user.RoleId); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim("UserID", user.UserId.ToString()), new Claim("roles", user.Role.Name) }), Expires = DateTime.UtcNow.AddMinutes(30), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(AppSettings.JWT_Secret)), SecurityAlgorithms.HmacSha256Signature) }; var tokenHandler = new JwtSecurityTokenHandler(); var securityToken = tokenHandler.CreateToken(tokenDescriptor); var token = tokenHandler.WriteToken(securityToken); return(Ok(new { token })); } catch (Exception e) { return(BadRequest(new { message = e.Message.ToString() })); } }