public async Task <User> LoginCarePerson(LoginCarePersonViewModel loginCarePerson) { var user = unitOfWork.Users.GetAll().FirstOrDefault(u => u.ShareCode == loginCarePerson.ShareCode); if (user != null) { await signInManager.SignInAsync(user, false, null); return(user); } return(null); }
public async Task LoginCarePerson([FromBody] LoginCarePersonViewModel loginCarePerson) { var result = await accountsService.LoginCarePerson(loginCarePerson); if (ModelState.IsValid) { var user = await _userManager.FindByEmailAsync(result.Email); if (user != null) { var claims = new List <Claim> { new Claim(ClaimsIdentity.DefaultNameClaimType, user.Email), new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) }; var jwtSecurityToken = new JwtSecurityToken( issuer: AuthOptions.Issuer, audience: AuthOptions.Audience, claims: claims, expires: DateTime.UtcNow.Add(TimeSpan.FromMinutes(AuthOptions.Lifetime)), signingCredentials: new SigningCredentials( new SymmetricSecurityKey(Encoding.UTF8.GetBytes(AuthOptions.Key)), SecurityAlgorithms.HmacSha256)); var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken); var response = new { access_token = encodedJwt, userid = user.Id }; Response.ContentType = "application/json"; await Response.WriteAsync(JsonConvert.SerializeObject(response, new JsonSerializerSettings { Formatting = Formatting.Indented })); return; } await Response.WriteAsync("Wrong credentials!"); } }