public async Task <IActionResult> Login([FromBody] UserForLogin userForLogin) { var userFromDb = await _authService.Login(userForLogin.Username.ToLower(), userForLogin.Password); if (userFromDb == null) { return(Unauthorized()); } var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_config.GetSection("AppSettings:Token").Value); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.NameIdentifier, userFromDb.Id.ToString()), new Claim(ClaimTypes.Name, userFromDb.Username) }), Expires = DateTime.Now.AddDays(1), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha512Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); var tokenString = tokenHandler.WriteToken(token); var user = new UserForList { Id = userFromDb.Id, Username = userFromDb.Username, Specialty = userFromDb.Specialty, Age = userFromDb.DateOfBirth.CalculateAge(), KnownAs = userFromDb.KnownAs, Created = userFromDb.Created, LastActive = userFromDb.LastActive, City = userFromDb.City, State = userFromDb.State, PhotoUrl = userFromDb.Photos.FirstOrDefault(p => p.IsMain).Url, }; return(Ok(new { tokenString, user })); }
public DetailsViewModel(INavigation navigation, UserForList userForList) { _navigation = navigation; _userForList = userForList; Initialize(); }
public DetailsPage(UserForList userForList) { InitializeComponent(); BindingContext = new DetailsViewModel(Navigation, userForList); }