/// <summary> /// Logins the user associated with the specified email and password. /// </summary> /// <param name="email"></param> /// <param name="password"></param> /// <returns></returns> public async Task <string> LoginUser(string email, string password) { try { var auth = _authRepository.GetAuthByEmail(email); if (!auth.IsBLocked) { VerifyAuthPassword(auth, password); return(await _loginTokenManager.Add(auth.UserId, LoginTokenModel.LoginTypes.UserPassword)); } throw new UserBlockedException("user is blocked"); } catch (Exception ex) { throw ex; } }
/// <summary> /// Signs in the user associated with the data extracted from the facebook token. /// </summary> /// <param name="facebookToken"></param> /// <returns></returns> public async Task <string> SignIn(string facebookToken) { using (HttpClient httpClient = new HttpClient()) { try { HttpResponseMessage response = GetUserByFacebookToken(facebookToken, httpClient); if (response.IsSuccessStatusCode) { var facebookUserDto = await response.Content.ReadAsAsync <FacebookUserDto>(); var facebookId = facebookUserDto.id; string appToken = ""; if (_facebookAuthRepository.IsFacebookIdFree(facebookId)) { var userId = GenerateUserId(); appToken = await _loginTokenManager.Add(userId, LoginTokenModel.LoginTypes.Facebook); await AddUserToDatabases(facebookUserDto, userId, appToken); } else { appToken = await FacebookLogin(facebookId); } return(appToken); } else { throw new ArgumentException("Access token is not valid"); } } catch (Exception e) { throw e; } } }