private async Task <LoginSocialDto> LoginSocialReturn(string userIDSocial, LoginSocialDto model) { var responseModel = new LoginSocialDto(); responseModel.Email = model.Email; responseModel.LoginProvider = model.LoginProvider; responseModel.ProviderKey = model.ProviderKey; if (!String.IsNullOrEmpty(userIDSocial)) { var appUser = _userManager.Users.SingleOrDefault(r => r.Id == userIDSocial); responseModel.Email = model.Email; var lstRole = await _userManager.GetRolesAsync(appUser); //responseModel.Role = lstRole.Count > 0 ? string.Join(",", lstRole) : ""; var jwt = await GenerateJwtToken(model.Email, appUser); responseModel.JWT = jwt.ToString(); responseModel.Id = appUser.Id; return(responseModel); } else { responseModel.ErrorCode = "005"; responseModel.Message = ConstMessage.GetMsgConst("005"); return(responseModel); } }
private async Task <object> LoginBySocial([FromBody] LoginSocialDto model) { var responseModel = new LoginSocialDto(); responseModel.Email = model.Email; responseModel.LoginProvider = model.LoginProvider; responseModel.ProviderKey = model.ProviderKey; if (Util.IsPhoneNumber(model.Email)) { model.Email = $"{model.Email}@hanoma.vn"; } //Check input Email Pass if (String.IsNullOrEmpty(model.Email)) { responseModel.ErrorCode = "ACC006"; responseModel.Message = ConstMessage.GetMsgConst("ACC006"); return(responseModel); } else { //Check exists User var userIDSocial = _repositoryWrapper.AspNetUsers.CheckExistsUserSocial(model.LoginProvider, model.ProviderKey); if (userIDSocial != null) { return(LoginSocialReturn(userIDSocial, model)); } else { if (Util.IsPhoneNumber(model.Email)) { model.Email = $"{model.Email}@hanoma.vn"; } var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user); if (result.Succeeded) { _logger.LogInfo($"[AccountController] Đăng ký thành công {model.Email} "); try { _repositoryWrapper.AspNetUsers.CreateNewUserProfile(user.Id, user.Email, null, 1); //Create Social _repositoryWrapper.AspNetUsers.CreateUserSocial(model.LoginProvider, model.ProviderKey, user.Id); //return return(LoginSocialReturn(user.Id, model)); } catch (Exception ex) { _logger.LogError($"[Account Controller] {ex}"); return(LoginSocialReturn(null, model)); } } else { _logger.LogError($"[Account Controller] Error with Create Account Social"); return(LoginSocialReturn(null, model)); } } } }