// POST: api/<controller>/Login
        public async Task <IActionResult> SocialLogin([FromBody] GoogleLogin loginModel)
        {
            var test = _appSettings.JWT_Secret;

            Korisnik userModel = new Korisnik();

            userModel.Email    = loginModel.Email;
            userModel.Ime      = loginModel.Ime;
            userModel.Prezime  = loginModel.Prezime;
            userModel.Uloga    = TipKorisnika.Registrovani;
            userModel.UserName = loginModel.Id;



            if (_userManager.FindByNameAsync(userModel.UserName).Result == null)
            {
                var result = await _userManager.CreateAsync(userModel);
            }

            if (VerifyToken(loginModel.IdToken))
            {
                var tokenDescriptor = new SecurityTokenDescriptor
                {
                    Expires = DateTime.UtcNow.AddMinutes(5),
                    //Key min: 16 characters
                    // SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_appSettings.JWT_Secret)), SecurityAlgorithms.HmacSha256Signature)
                };
                var tokenHandler  = new JwtSecurityTokenHandler();
                var securityToken = tokenHandler.CreateToken(tokenDescriptor);
                var token         = tokenHandler.WriteToken(securityToken);
                return(Ok(new { token, userModel.UserName, userModel.Uloga, userModel.IzmenjenaLozinka }));
            }

            return(Ok());
        }
Esempio n. 2
0
        public async Task <IActionResult> Post([FromBody] ValidationDataObject vdo)
        {
            JObject reponse = VerifyGoogleTokenId(vdo.TokenId);

            var googleRecord = await _context.GoogleLogins.Include(g => g.User).SingleOrDefaultAsync(g => g.GoogleID == vdo.GoogleId);

            if (googleRecord == null)
            {
                int initialCredits = 50000;
                //Fullname = (String)reponse["name"],
                User newUser = new User {
                    Email = (String)reponse["email"], ProfilePic = (String)reponse["picture"], Credits = initialCredits
                };
                await _context.Users.AddAsync(newUser);

                GoogleLogin newGoogleEntry = new GoogleLogin {
                    GoogleID = vdo.GoogleId, userID = newUser.ID
                };
                await _context.GoogleLogins.AddAsync(newGoogleEntry);

                await _context.SaveChangesAsync();

                HttpContext.Session.SetString("userId", newUser.ID.ToString());
                return(Ok("200"));
            }

            HttpContext.Session.SetString("userId", googleRecord.User.ID.ToString());
            return(Ok("200"));
        }
Esempio n. 3
0
        public async Task DoGoogleLogin()
        {
            _authType = AuthType.Google;

            string googleRefreshToken = string.Empty;

            if (File.Exists(Directory.GetCurrentDirectory() + "\\Configs\\GoogleAuth.ini"))
            {
                googleRefreshToken = File.ReadAllText(Directory.GetCurrentDirectory() + "\\Configs\\GoogleAuth.ini");
            }

            GoogleLogin.TokenResponseModel tokenResponse;
            if (googleRefreshToken != string.Empty)
            {
                tokenResponse = await GoogleLogin.GetAccessToken(googleRefreshToken);

                AccessToken = tokenResponse?.id_token;
            }

            if (AccessToken == null)
            {
                var deviceCode = await GoogleLogin.GetDeviceCode();

                tokenResponse = await GoogleLogin.GetAccessToken(deviceCode);

                googleRefreshToken = tokenResponse?.refresh_token;
                File.WriteAllText(Directory.GetCurrentDirectory() + "\\Configs\\GoogleAuth.ini", googleRefreshToken);
                Logger.Write("Refreshtoken " + tokenResponse?.refresh_token + " saved");
                AccessToken = tokenResponse?.id_token;
            }
        }
        public async Task DoGoogleLogin(string filename = "GoogleAuth.ini")
        {
            _authType = AuthType.Google;
            string googleRefreshToken = string.Empty;

            if (!Directory.Exists(configs_path))
            {
                Directory.CreateDirectory(configs_path);
            }
            string googletoken_file = Path.Combine(configs_path, filename);

            if (File.Exists(googletoken_file))
            {
                googleRefreshToken = File.ReadAllText(googletoken_file);
            }
            GoogleLogin.TokenResponseModel tokenResponse;
            if (googleRefreshToken != string.Empty)
            {
                tokenResponse = await GoogleLogin.GetAccessToken(googleRefreshToken);

                AccessToken = tokenResponse?.id_token;
            }
            if (AccessToken == null)
            {
                var deviceCode = await GoogleLogin.GetDeviceCode();

                tokenResponse = await GoogleLogin.GetAccessToken(deviceCode);

                googleRefreshToken = tokenResponse?.refresh_token;
                Logger.Write("Refreshtoken " + tokenResponse?.refresh_token + " saved", LogLevel.Info);
                File.WriteAllText(googletoken_file, googleRefreshToken);
                AccessToken = tokenResponse?.id_token;
            }
        }
Esempio n. 5
0
        public async Task DoGoogleLogin()
        {
            _client.AuthType = AuthType.Google;

            GoogleLogin.TokenResponseModel tokenResponse = null;
            if (_client.Settings.GoogleRefreshToken != string.Empty)
            {
                tokenResponse = await GoogleLogin.GetAccessToken(_client.Settings.GoogleRefreshToken);

                _client.AuthToken = tokenResponse?.id_token;
            }

            if (_client.AuthToken == null)
            {
                var deviceCode = await GoogleLogin.GetDeviceCode();

                GoogleDeviceCodeEvent?.Invoke(deviceCode.user_code, deviceCode.verification_url);
                tokenResponse = await GoogleLogin.GetAccessToken(deviceCode);

                _client.Settings.GoogleRefreshToken = tokenResponse?.refresh_token;
                _client.AuthToken = tokenResponse?.id_token;
            }

            await SetServer();
        }
Esempio n. 6
0
        public async Task DoGoogleLogin(string username, string password)
        {
            _client.AuthType = AuthType.Google;

            var googleLogin = new GoogleLogin(username, password);

            _client.AuthToken = await googleLogin.GetAccessToken();

            //GoogleLogin.TokenResponseModel tokenResponse;
            //if (_client.Settings.GoogleRefreshToken != string.Empty)
            //{
            //    tokenResponse = await GoogleLogin.GetAccessToken(_client.Settings.GoogleRefreshToken);
            //    _client.AuthToken = tokenResponse?.id_token;
            //}

            //if (_client.AuthToken == null)
            //{
            //    var deviceCode = await GoogleLogin.GetDeviceCode();
            //    GoogleDeviceCodeEvent?.Invoke(deviceCode.user_code, deviceCode.verification_url);
            //    tokenResponse = await GoogleLogin.GetAccessToken(deviceCode);
            //    _client.Settings.GoogleRefreshToken = tokenResponse?.refresh_token;
            //    _client.AuthToken = tokenResponse?.id_token;
            //}

            await SetServer();
        }
Esempio n. 7
0
        protected async void OnLogInBtnClicked(object sender, EventArgs e)
        {
            IAccountProvider accountProvider = null;

            switch (_logInMethod)
            {
            case LogInMethod.Facebook:
                accountProvider = new FacebookLogin(usernameEntry.Text, passwordEntry.Text);
                break;

            case LogInMethod.Google:
                accountProvider = new GoogleLogin(usernameEntry.Text, passwordEntry.Text);
                break;

            case LogInMethod.Normal:
                accountProvider = new NormalLogin(usernameEntry.Text, passwordEntry.Text);
                break;
            }

            if (accountProvider != null)
            {
                var account = await accountProvider.Login();

                if (account != null)
                {
                    Gtk.Application.Invoke(delegate
                    {
                        var homeWin = new HomeWindow(account);
                        homeWin.Show();
                        this.Destroy();
                    });
                }
            }
        }
Esempio n. 8
0
        public async ValueTask <GameClient> Obtain()
        {
            var client = await GoogleLogin.GetClientFromCookieAsync(_googleCookie).ConfigureAwait(false);

            await client.ConnectAsync().ConfigureAwait(false);

            return(new GameClient(client));
        }
 public async Task InitializeAsync(Location location)
 {
     var scanner = db.Locations.SingleOrDefault(l => l.Id == location.Id).Scanner;
     this.googleLogin = new GoogleLogin();
     this.nianticClient = new NianticClient(location);
     this.emailAlerter = new EmailAlerter(scanner);
     await this.googleLogin.LoginAsync(scanner);
     await this.nianticClient.InitializeAsync(googleLogin.accessToken);
 }
Esempio n. 10
0
        public string Google_Auth()
        {
            string info = null;

            var login = new GoogleLogin("991072998353-0kno6kh8b0hnhq2tuplall1kl904oaga.apps.googleusercontent.com", "CQyfo4pc-jy6b-QJS3wacy3j", "https://www.googleapis.com/auth/plus.login", autoLogout: true, loadUserInfo: true);

            login.ShowDialog();

            if (login.IsSuccessfully)
            {
                info = login.UserInfo.FirstName;
            }
            return(info);
        }
        /// <summary>
        /// Google Login
        /// </summary>
        /// <param name="googleLogin"></param>
        /// <returns></returns>
        public LoginResponseViewModel GoogleLogin(GoogleLogin googleLogin)
        {
            LoginResponseViewModel googleModel = new LoginResponseViewModel();

            if (googleLogin != null)
            {
                using (var db = new Orchard9Entities())
                {
                    var gUser  = db.tblUsers.Where(a => a.EmailId == googleLogin.emailaddress).FirstOrDefault();
                    var gUser1 = db.tblUsers.Where(a => a.EmailId == googleLogin.emailaddress && a.IsActive == true).FirstOrDefault();

                    if (gUser1 == null)
                    {
                        googleModel.StatusMessage = "Account is Blocked";
                        return(googleModel);
                    }

                    if (gUser == null)
                    {
                        db.tblUsers.Add(new tblUser()
                        {
                            EmailId     = googleLogin.emailaddress,
                            Name        = googleLogin.givenname,
                            IsVerified  = true,
                            UserType    = "External",
                            Role        = 1,
                            IsActive    = true,
                            CreatedDate = DateTime.Now,
                            DateOfBirth = DateTime.Now.Date
                        });
                        db.SaveChanges();
                        googleModel.StatusMessage = "Login Successful";
                    }
                    googleModel.userLogin = (from res in db.tblUsers
                                             where res.EmailId == googleLogin.emailaddress
                                             select new UserLogin()
                    {
                        EmailId = res.EmailId,
                        UserId = res.UserId
                    }).FirstOrDefault();
                    googleModel.StatusMessage = "Login Successful";
                    return(googleModel);
                }
            }
            else
            {
                googleModel.StatusMessage = "Empty Model";
            }
            return(googleModel);
        }
Esempio n. 12
0
        public async Task Open(string worldid)
        {
            WorldId = worldid;

            string[] data = File.ReadAllLines("../../../cookie.txt");

            bool isGoogleToken = data[0] == "google" ? true : false;

            if (isGoogleToken)
            {
                client = await GoogleLogin.GetClientFromCookieAsync(data[1]);
            }
            else
            {
                client = new Client(data[1]);
            }

            await client.ConnectAsync();

            try
            {
                Con = (Connection)client.CreateWorldConnection(WorldId);

                await Program.SayPrivate(ScannerOpenedBy, "[Scanner] Logged in!");

                Console.Write("Opened scanner in ");
                Console.Write(WorldId, Color.Orange);
                Console.WriteLine("!");

                Con.OnMessage += async(s, m) =>
                {
                    try
                    {
                        await MessageHandler(m);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Bot almost crashed!");
                        Console.Write(e);
                    }
                };
                await Con.SendAsync(MessageType.Init, 0);

                //Thread.Sleep(-1);
            }
            catch
            {
                await Program.SayPrivate(ScannerOpenedBy, "[Scanner] Failed to log in!");
            }
        }
Esempio n. 13
0
        public string Google_Auth()
        {
            string name = null;

            var login = new GoogleLogin("282890727966-fnsa1tofldqjseo801t93i8lah4bijko.apps.googleusercontent.com", "rK8eRcFoO6CjYP9PmrwUczZW", "https://www.googleapis.com/auth/plus.login", autoLogout: true, loadUserInfo: true);

            login.ShowDialog();

            if (login.IsSuccessfully)
            {
                name = login.UserInfo.FirstName;
            }
            return(name);
        }
Esempio n. 14
0
        public async Task DoGoogleLogin()
        {
            if (_settings.GoogleRefreshToken == string.Empty)
            {
                var tokenResponse = await GoogleLogin.GetAccessToken();

                _accessToken = tokenResponse.id_token;
                _settings.GoogleRefreshToken = tokenResponse.access_token;
            }
            else
            {
                var tokenResponse = await GoogleLogin.GetAccessToken(_settings.GoogleRefreshToken);

                _accessToken = tokenResponse.id_token;
                _authType    = AuthType.Google;
            }
        }
Esempio n. 15
0
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            //var login = new GoogleLogin("934704666049 - 129jsvmelksmcmf250ir90aqn8pk4nak.apps.googleusercontent.com", "OS7HZ1cfJnhdIFZ6fUsgamH-", returnUrl: null, autoLogout: true, loadUserInfo: true);
            var login = new GoogleLogin
                            ("934704666049-129jsvmelksmcmf250ir90aqn8pk4nak.apps.googleusercontent.com",
                            "OS7HZ1cfJnhdIFZ6fUsgamH-", returnUrl: null, scope: "https://www.googleapis.com/auth/drive", loadUserInfo: true, responseType: ResponseType.Code);

            login.ShowDialog();
            if (login.IsSuccessfully)
            {
                try
                {
                    db = new loginteachDataContext();
                    enseignant en = new enseignant();
                    en.gmailid = login.UserInfo.UserId;
                    var query = from enseignant in db.enseignants
                                where enseignant.gmailid == en.gmailid
                                select enseignant;
                    List <enseignant> listeEns = query.ToList <enseignant>();
                    if (listeEns.Count == 0)
                    {
                        MessageBox.Show("ce compte gmail n'est pas lié à aucun compte !");
                    }
                    else
                    {
                        enseignant enss = listeEns[0];
                        ValidatedEns.cin           = enss.cin;
                        ValidatedEns.mots_de_passe = enss.mots_de_passe;
                        ValidatedEns.nom           = enss.nom;
                        ValidatedEns.prenom        = enss.prenom;
                        ValidatedEns.mail          = enss.mail;
                        ValidatedEns.photo         = enss.photo;
                        ValidatedEns.code_a_bar    = enss.code_a_bar;
                        Accueil_Enseignant ac = new Accueil_Enseignant();
                        ac.Show();
                    }
                }
                catch (SqlException ex)
                {
                    MessageBox.Show("Erreur de connection BD " + ex.Message);
                }
            }
        }
Esempio n. 16
0
        static async Task Main2(string[] data)
        {
            Console.WriteLine("Logging in...");

            try
            {
                bool   isGoogleToken = data[0] == "google" ? true : false;
                Client client;
                if (isGoogleToken)
                {
                    client = await GoogleLogin.GetClientFromCookieAsync(data[1]);
                }
                else
                {
                    client = new Client(data[1]);
                }

                await client.ConnectAsync();

                Con = (Connection)client.CreateWorldConnection(WorldId);

                Con.OnMessage += async(s, m) =>
                {
                    try
                    {
                        await Main3(m);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Bot almost crashed!");
                        Console.Write(e);
                    }
                };
                await Con.SendAsync(MessageType.Init, 0);

                Thread.Sleep(-1);
            }
            catch
            {
                Console.WriteLine("Login failed! Update google cookie!");
            }
        }
Esempio n. 17
0
        public async Task DoGoogleLogin()
        {
            _authType = AuthType.Google;
            if (_settings.GoogleRefreshToken != string.Empty)
            {
                var tokenResponse = await GoogleLogin.GetAccessToken(_settings.GoogleRefreshToken);

                AccessToken = tokenResponse.id_token;
            }

            if (AccessToken == null)
            {
                var deviceCode = await GoogleLogin.GetDeviceCode();

                var tokenResponse = await GoogleLogin.GetAccessToken(deviceCode);

                AccessToken = tokenResponse.id_token;
                _settings.GoogleRefreshToken = tokenResponse.access_token;
            }
        }
        public LoginControl()
        {
            InitializeComponent();

            googleLogin = new GoogleLogin();

            this.txtClientId.Text       = MESSAGE_ENTER_CLIENT_ID;
            this.txtClientId.GotFocus  += txtClient_GotFocus;
            this.txtClientId.LostFocus += txtClient_LostFocus;

            this.txtClientSecret.Text       = MESSAGE_ENTER_CLIENT_SECRET;
            this.txtClientSecret.GotFocus  += txtClient_GotFocus;
            this.txtClientSecret.LostFocus += txtClient_LostFocus;

            string currentToken = GooglePhotosInterface.Instance.GetToken();

            if (currentToken != string.Empty)
            {
                SetTextToken(currentToken);
            }
        }
Esempio n. 19
0
        private void GetAccessToken()
        {
            /*
             * var login = new GoogleLogin
             * (
             * "934704666049-g1jke2vn0nm87djsenpuqk5k2cnuk39p.apps.googleusercontent.com",
             * "ZPCjyQNDe7DfgqKICKBSK1Mh",
             * "https://oauthproxy.nemiro.net/",
             * "https://www.googleapis.com/auth/drive",
             * loadUserInfo: true
             * );
             */

            var login = new GoogleLogin
                        (
                "934704666049-129jsvmelksmcmf250ir90aqn8pk4nak.apps.googleusercontent.com",
                "OS7HZ1cfJnhdIFZ6fUsgamH-",
                returnUrl: null,
                scope: "https://www.googleapis.com/auth/drive",
                loadUserInfo: true,
                responseType: ResponseType.Code
                        );

            login.Owner = this;
            login.ShowDialog();

            if (login.IsSuccessfully)
            {
                Properties.Settings.Default.AccessToken = login.AccessToken.Value;
                Properties.Settings.Default.Save();

                this.Text = String.Format("{0} (Google Drive)", login.UserInfo.DisplayName ?? login.UserInfo.UserName);

                this.GetFiles();
            }
            else
            {
                MessageBox.Show("error...");
            }
        }
Esempio n. 20
0
        public async Task DoGoogleLogin()
        {
            _authType = AuthType.Google;

            GoogleLogin.TokenResponseModel tokenResponse = null;
            if (Settings.GoogleRefreshToken != string.Empty)
            {
                tokenResponse = await GoogleLogin.GetAccessToken(Settings.GoogleRefreshToken);

                AccessToken = tokenResponse?.id_token;
            }

            if (AccessToken == null)
            {
                var deviceCode = await GoogleLogin.GetDeviceCode();

                tokenResponse = await GoogleLogin.GetAccessToken(deviceCode);

                Settings.GoogleRefreshToken = tokenResponse?.refresh_token;
                AccessToken = tokenResponse?.id_token;
            }
        }
        private void pictureBox3_Click(object sender, EventArgs e)
        {
            //var login = new GoogleLogin("934704666049 - 129jsvmelksmcmf250ir90aqn8pk4nak.apps.googleusercontent.com", "OS7HZ1cfJnhdIFZ6fUsgamH-", returnUrl: null,autoLogout: true, loadUserInfo: true);
            var login = new GoogleLogin
                            ("934704666049-129jsvmelksmcmf250ir90aqn8pk4nak.apps.googleusercontent.com",
                            "OS7HZ1cfJnhdIFZ6fUsgamH-", returnUrl: null, scope: "https://www.googleapis.com/auth/drive", loadUserInfo: true, responseType: ResponseType.Code);

            login.ShowDialog();
            if (login.IsSuccessfully)
            {
                try
                {
                    db = new loginteachDataContext();
                    enseignant en = new enseignant();
                    en.gmailid = login.UserInfo.UserId;
                    var query = from enseignant in db.enseignants
                                where enseignant.gmailid == en.gmailid
                                select enseignant;
                    List <enseignant> listeEns = query.ToList <enseignant>();
                    if (listeEns.Count == 1)
                    {
                        MessageBox.Show("ce compte gmail est déjà lié à une compte !");
                    }
                    else
                    {
                        gmailIsUsed   = true;
                        textBox2.Text = login.UserInfo.LastName;
                        textBox3.Text = login.UserInfo.FirstName;
                        textBox5.Text = login.UserInfo.Email;
                        gmailid       = login.UserInfo.UserId;
                    }
                }
                catch (SqlException ex)
                {
                    MessageBox.Show("Erreur de connection BD " + ex.Message);
                }
            }
        }
        public static async Task <GebruikerV2> CheckLogin(GoogleLogin googleLogin)
        {
            string url = $"{_BASEURI}?code={_FUNCTIONKEY}";

            using (HttpClient client = GetHttpClient())
            {
                try
                {
                    HttpClient httpClient = GetHttpClient();
                    //httpClient.DefaultRequestHeaders.Add("email", googleLogin.email);
                    //httpClient.DefaultRequestHeaders.Add("gebruikersnaam", googleLogin.name);
                    string data    = JsonConvert.SerializeObject(googleLogin);
                    var    request = new HttpRequestMessage
                    {
                        Method     = HttpMethod.Get,
                        RequestUri = new Uri(url),
                        Content    = new StringContent(data, Encoding.UTF8, "application/json"),
                    };

                    var response = await client.SendAsync(request).ConfigureAwait(false);

                    response.EnsureSuccessStatusCode();

                    var responseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false);


                    //string json = await client.GetStringAsync(url);
                    GebruikerV2 gebruikerInfo = JsonConvert.DeserializeObject <GebruikerV2>(Convert.ToString(responseBody));
                    return(gebruikerInfo);
                }
                catch (Exception ex)
                {
                    return(null);
                    //throw ex;
                }
            }
        }
 public LoginResponseViewModel PostGoogleDetails(GoogleLogin googleLogin)
 {
     return(userReg.GoogleUser(googleLogin));
 }
Esempio n. 24
0
        public async Task DoGoogleLogin(string username, string password)
        {
            _client.AuthType = AuthType.Google;

            _client.AuthToken = GoogleLoginGPSOAuth.DoLogin(username, password);
            await SetServer();

            await Task.Delay(100);

            return;



            /*
             * This is our old authentication method
             * Keeping this around in case we might need it later on
             *
             */
            string googleRefreshToken = string.Empty;

            if (File.Exists(Directory.GetCurrentDirectory() + "\\Configs\\GoogleAuth.ini"))
            {
                googleRefreshToken = File.ReadAllText(Directory.GetCurrentDirectory() + "\\Configs\\GoogleAuth.ini");
            }

            GoogleLogin.TokenResponseModel tokenResponse = null;
            if (googleRefreshToken != string.Empty)
            {
                tokenResponse = await GoogleLogin.GetAccessToken(googleRefreshToken);

                _client.AuthToken = tokenResponse?.id_token;
            }

            //if (_client.AuthToken == null)
            //{
            //    var deviceCode = await GoogleLogin.GetDeviceCode();
            //    if(deviceCode?.user_code == null || deviceCode?.verification_url == null)
            //        throw new GoogleOfflineException();

            //    GoogleDeviceCodeEvent?.Invoke(deviceCode.user_code, deviceCode.verification_url);
            //    tokenResponse = await GoogleLogin.GetAccessToken(deviceCode);

            //    File.WriteAllText(Directory.GetCurrentDirectory() + "\\Configs\\GoogleAuth.ini", googleRefreshToken);
            //    googleRefreshToken = tokenResponse?.refresh_token;
            //    _client.AuthToken = tokenResponse?.id_token;
            //}

            if (AccessToken == null)
            {
                var deviceCode = await GoogleLogin.GetDeviceCode();

                tokenResponse = await GoogleLogin.GetAccessToken(deviceCode);

                googleRefreshToken = tokenResponse?.refresh_token;
                File.WriteAllText(Directory.GetCurrentDirectory() + "\\Configs\\GoogleAuth.ini", googleRefreshToken);
                Logger.Write("Refreshtoken " + tokenResponse?.refresh_token + " saved");
                _client.AuthToken = tokenResponse?.id_token;
            }

            await SetServer();
        }
 /// <summary>
 /// Google login method
 /// </summary>
 /// <param name="googleLogin"></param>
 /// <returns></returns>
 public LoginResponseViewModel GoogleUser(GoogleLogin googleLogin)
 {
     return(userTableServiceDAL.GoogleLogin(googleLogin));
 }
        private void BtnLogin_Clicked(object sender, EventArgs e)
        {
            checkConnectivity();

            var authenticator = new OAuth2Authenticator
                                (
                "623999391750-8cep3ajgrnh26gdnmlbjq3376im2gcui.apps.googleusercontent.com",
                "email profile",
                new System.Uri("https://accounts.google.com/o/oauth2/auth"),
                new System.Uri("https://localhost:44312/signin-google")
                                );

            authenticator.AllowCancel = true;

            var presenter = new Xamarin.Auth.Presenters.OAuthLoginPresenter();

            presenter.Login(authenticator);

            authenticator.Completed += async(senders, obj) =>
            {
                if (obj.IsAuthenticated)
                {
                    Debug.WriteLine("Dit doet iets");
                    var clientData = new HttpClient();

                    //call google api to fetch logged in user profile info
                    token = obj.Account.Properties["access_token"];
                    var resData = await clientData.GetAsync("https://www.googleapis.com/oauth2/v3/userinfo?access_token=" + obj.Account.Properties["access_token"]);

                    var jsonData = await resData.Content.ReadAsStringAsync();

                    //deserlize the jsondata and intilize in GoogleAuthClass
                    GoogleLogin googleObject = JsonConvert.DeserializeObject <GoogleLogin>(jsonData);

                    //you can access following property after login
                    string email = googleObject.email;
                    string name  = googleObject.name;

                    GebruikerV2 gebruikerInfo = await LoginRepository.CheckLogin(googleObject);

                    if (gebruikerInfo != null)
                    {
                        Navigation.PushAsync(new RondeOverzichtPage(gebruikerInfo));
                        Debug.WriteLine("-----------------------------------------------------------------------------------------");
                        Debug.WriteLine($"Email:{gebruikerInfo.Email}, Gebruikersnaam: {gebruikerInfo.name}, GebruikersId: {gebruikerInfo.GebruikerId}");
                        Debug.WriteLine("-----------------------------------------------------------------------------------------");
                    }
                    else
                    {
                        Navigation.PopAsync();
                        Debug.WriteLine("-----------------------------------------------------------------------------------------");
                        Debug.WriteLine("Failed for some reason");
                        Debug.WriteLine("-----------------------------------------------------------------------------------------");
                    }
                }
                else
                {
                    //Authentication fail
                    //write the code to handle when auth failed
                    //De gebruiker wordt al terug naar de login pagina gestuurd als het inloggen mislukt is
                }
            };
            authenticator.Error += onAuthError;
        }