public UserModel LoginFb(UserLoginFacebook userLoginFacebook) { using var unitOfWork = new UnitOfWork(); var userRepo = unitOfWork.GetRepository <User>(); var user = userRepo.FirstOrDefault(x => x.FacebookId == userLoginFacebook.FacebookId); if (user == null) { user = new User { Email = userLoginFacebook.Email, FacebookId = userLoginFacebook.FacebookId, GoogleId = null, UserType = UserType.Normal, Username = userLoginFacebook.Email, RefreshToken = GenerateRefreshToken(), Password = StringCipher.Encrypt("", "KI6rnfCy6YUFq0mLoO") }; userRepo.Add(user); var playlistRepo = unitOfWork.GetRepository <Playlist>(); playlistRepo.Add(new Playlist { Name = "Liked songs", Public = false, ShareLink = "", UserId = user.Id }); unitOfWork.Save(); } var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_appSettings.Secret); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, user.Username) }), Expires = DateTime.UtcNow.AddMonths(1), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); var userModel = UserMapper.MapUser(user); userModel.Token = tokenHandler.WriteToken(token); return(userModel); }
public IActionResult LoginInFb([FromBody] UserLoginFacebook userLoginFacebook) { var loginResult = _userService.LoginFb(userLoginFacebook); return(loginResult == null?Unauthorized() as IActionResult : new OkObjectResult(loginResult)); }