protected virtual IActionResult SocialLogin(SocialLoginRequest socialLoginRequest) { if (socialLoginRequest == null) { return(BadRequest()); } var loginResponse = UserBusiness.SocialLogin(SocialNetworkType.Get(socialLoginRequest.SocialNetworkType), socialLoginRequest.Email, socialLoginRequest.Token, socialLoginRequest.RequestedToBeAdvisor); return(Ok(new { logged = !loginResponse.PendingConfirmation, jwt = GenerateToken(socialLoginRequest.Email.ToLower().Trim()), data = loginResponse })); }
public async Task <ActionResult <TokenResponse> > Google([FromBody] SocialLoginRequest loginRequest) { try { var result = await new HttpClient().GetStringAsync($"https://www.googleapis.com/plus/v1/people/{loginRequest.SocialUserId}?access_token={loginRequest.AccessToken}"); if (result == null) { return(Unauthorized()); } var jsonResult = JObject.Parse(result); var email = ((JArray)jsonResult["emails"]).FirstOrDefault()["value"].ToString();; return(await _authService.GetTokenForSocial("google", email)); } catch (Exception) { return(Unauthorized()); } }
public new IActionResult SocialLogin([FromBody] SocialLoginRequest socialLoginRequest) { return(base.SocialLogin(socialLoginRequest)); }
public IActionResult FacebookLogin([FromForm] SocialLoginRequest request) { var user = _context.Users.Where(x => x.Email == request.Email.Trim()).FirstOrDefault(); //Email chưa được sử dụng trong hệ thống, đăng ký tài khoản mới if (user == null) { var newUser = new AppUser() { NumberOfFiends = 0, NumberOfImages = 0, NumberOfLikes = 0, Email = request.Email, Role = ERole.User, FullName = request.FullName, UserName = request.Email, AvatarPath = request.Avatar, IsInfoUpdated = false, PassWord = Guid.NewGuid().ToString() }; switch (request.Provider.ToLower()) { case "facebook": newUser.TypeAccount = ETypeAccount.Facebook; break; case "google": newUser.TypeAccount = ETypeAccount.Google; break; default: return(BadRequest(new { Message = "Provider is not correct" })); } var mailchimp = new MailChimpModel() { Email = request.Email, Name = request.FullName }; _mailchimpService.Subscribe(mailchimp); try { _context.Users.Add(newUser); _context.SaveChanges(); var response = new UserResponse(newUser, _storageService); response.Token = this.GenerateJSONWebToken(newUser); return(Ok(response)); } catch (Exception e) { return(BadRequest(new { Message = e.Message })); } } else // Email đã có trong hệ thống, tiến hành đăng nhập { if (user.Status == EUserStatus.Inactive) { return(BadRequest(new { Message = "Tài khoản của bạn đã bị khóa bởi quản trị viên!" })); } var userResponse = new UserResponse(user, _storageService); userResponse.Token = this.GenerateJSONWebToken(user); //_sessionService.SetSessionUser(user); return(Ok(userResponse)); } }