Example #1
0
        public TokenUser RefreshTokenLogin(string refreshToken)
        {
            if (refreshToken != null)
            {
                Models.Users dbUser = _dbContext.Users.FirstOrDefault(x => x.RefreshToken == refreshToken);
                if (dbUser != null && dbUser?.RefreshTokenEndDate > DateTime.Now)
                {
                    MyTokenHandler tokenHandler = new MyTokenHandler(_appSettings);
                    Token          token        = tokenHandler.CreateAccessToken();

                    dbUser.RefreshToken        = token.RefreshToken;
                    dbUser.RefreshTokenEndDate = token.Expiration.AddMinutes(5);
                    _dbContext.SaveChanges();

                    Auth.User user = new Auth.User()
                    {
                        Email = dbUser.UserName, Name = dbUser.Name, Password = dbUser.Password, Surname = dbUser.Surname
                    };

                    return(new TokenUser()
                    {
                        Token = token, User = user
                    });
                }
            }
            return(null);
        }
Example #2
0
        public ServiceResult <TokenUser> IlanAuthenticate(string username, string password)
        {
            try
            {
                VakifDb db = new VakifDb(_appSettings.ConnStr);

                if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
                {
                    return(new ServiceResult <TokenUser>()
                    {
                        isSuccessfull = true, ResultCode = 1, ResultData = null, ResultExplanation = "Kullanıcı Adı ve Şifre Boş Olamaz!"
                    });
                }

                var sonuc = db.GetKullanici(username, password);
                if (sonuc.BasariliMi)//yalnızca kullanıcı bulurusa true
                {
                    Auth.User user = new Auth.User()
                    {
                        PersonelID   = int.Parse(sonuc.Veri.Rows[0]["ID"].ToString()),
                        TCKimlikNo   = sonuc.Veri.Rows[0]["TCKimlikNo"].ToString(),
                        Name         = sonuc.Veri.Rows[0]["Adi"].ToString(),
                        Surname      = sonuc.Veri.Rows[0]["Soyadi"].ToString(),
                        DogumTarihi  = (DateTime)(sonuc.Veri.Rows[0]["DogumTarihi"]),
                        DogumYeri    = sonuc.Veri.Rows[0]["DogumYeri"].ToString(),
                        MedeniDurumu = sonuc.Veri.Rows[0]["MedeniHali"].ToString(),
                        Cinsiyet     = sonuc.Veri.Rows[0]["Cinsiyeti"].ToString(),
                        Email        = sonuc.Veri.Rows[0]["EPosta"].ToString(),
                    };

                    MyTokenHandler tokenHandler = new MyTokenHandler(_appSettings);
                    Token          token        = tokenHandler.CreateAccessToken();

                    db.SetRefreshToken(token, sonuc.Veri.Rows[0]["ID"].ToString());

                    return(new ServiceResult <TokenUser>()
                    {
                        isSuccessfull = true, ResultCode = 0, ResultData = new TokenUser()
                        {
                            Token = token, User = user
                        }, ResultExplanation = "Giriş Başarılı!"
                    });
                }
                else
                {
                    return(new ServiceResult <TokenUser>()
                    {
                        isSuccessfull = true, ResultCode = 1, ResultData = null, ResultExplanation = sonuc.Mesaj
                    });
                }
            }
            catch (Exception exc) {
                return(new ServiceResult <TokenUser>()
                {
                    isSuccessfull = false, ResultCode = 2, ResultData = null, ResultExplanation = exc.Message
                });
            }
        }
        public TokenUser IlanAuthenticate(string username, string password)
        {
            // var appSettingsSection = Configuration.GetSection("AppSettings");
            // services.Configure<AppSettings>(appSettingsSection);

            // Oluşturduğumuz gizli anahtarımızı byte dizisi olarak alıyoruz.
            // var appSettings = appSettingsSection.Get<AppSettings>();

            //    var key = Encoding.ASCII.GetBytes(appSettings.SecretKey);

            VakifDb db = new VakifDb();

            if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
            {
                throw new Exception("Kullanıcı Adı ve Şifre Boş Olamaz!");
            }

            if (Util.TcKontrol(username))
            {
                var sonuc = db.GetKullanici(username, password);
                if (sonuc.BasariliMi)
                {
                    Auth.User user = new Auth.User()
                    {
                        Email       = sonuc.Veri.Rows[0]["EPosta"].ToString(),
                        ApplicantID = int.Parse(sonuc.Veri.Rows[0]["ID"].ToString()),
                        Name        = sonuc.Veri.Rows[0]["Adi"].ToString(),
                        Surname     = sonuc.Veri.Rows[0]["Soyadi"].ToString()
                    };

                    MyTokenHandler tokenHandler = new MyTokenHandler(_appSettings);
                    Token          token        = tokenHandler.CreateAccessToken();

                    return(new TokenUser()
                    {
                        Token = token, User = user
                    });
                }
                else
                {
                    throw new Exception("Bağlantı Hatası!");
                }
            }
            else
            {
                throw new Exception("Kullanıcı Bulunamadı!");
            }
        }
        public TokenUser IlanRefreshTokenLogin(string refreshToken, int applicantId)
        {
            if (refreshToken != null)
            {
                VakifDb db = new VakifDb();

                var sonuc = db.CheckRefreshToken(refreshToken);

                if (sonuc.Veri.Rows.Count > 0 && (DateTime)(sonuc.Veri.Rows[0]["RefreshTokenEndDate"]) > DateTime.Now)
                {
                    MyTokenHandler tokenHandler = new MyTokenHandler(_appSettings);
                    Token          token        = tokenHandler.CreateAccessToken();

                    db.SetRefreshToken(token.RefreshToken, applicantId.ToString());

                    Auth.User user = new Auth.User()
                    {
                        Email       = sonuc.Veri.Rows[0]["EPosta"].ToString(),
                        ApplicantID = int.Parse(sonuc.Veri.Rows[0]["ID"].ToString()),
                        Name        = sonuc.Veri.Rows[0]["Adi"].ToString(),
                        Surname     = sonuc.Veri.Rows[0]["Soyadi"].ToString()
                    };

                    return(new TokenUser()
                    {
                        Token = token, User = user
                    });
                }
                else
                {
                    throw new Exception("Refresh token Süresi Doldu!");
                }
            }
            else
            {
                throw new Exception("RefreshToken boş olamaz!");
            }
        }
Example #5
0
        //Ekstra bir DTO veya model oluşturmamak için şimdilik değerlerimi geriye tuple olarak dönüyorum.
        // public (string username, string token)? Authenticate(string username, string password)
        #region orginal methods

        public TokenUser Authenticate(string username, string password)
        {
            //Kullanıcının gerçekten olup olmadığı kontrol ediyorum yoksa direk null dönüyorum.
            var dbUser = _dbContext.Users.SingleOrDefault(x => x.UserName == username && x.Password == password);

            if (dbUser == null)
            {
                return(null);
            }

            Auth.User user = new Auth.User()
            {
                Email = dbUser.UserName, Name = dbUser.Name, Password = dbUser.Password, Surname = dbUser.Surname
            };

            MyTokenHandler tokenHandler = new MyTokenHandler(_appSettings);
            Token          token        = tokenHandler.CreateAccessToken();

            //_appSettings.

            //Refresh token Users tablosuna işleniyor.
            dbUser.RefreshToken        = token.RefreshToken;
            dbUser.RefreshTokenEndDate = token.Expiration.AddMinutes(3);
            user.RefreshToken          = token.RefreshToken;
            user.RefreshTokenEndDate   = dbUser.RefreshTokenEndDate;

            _dbContext.SaveChanges();

            return(new TokenUser()
            {
                Token = token, User = user
            });

            #region original

            /*
             *   İlk Versiyon(REfresh TOKEN olmayan)
             *
             * // Token oluşturmak için önce JwtSecurityTokenHandler sınıfından instance alıyorum.
             * var _tokenHandler = new JwtSecurityTokenHandler();
             * //İmza için gerekli gizli anahtarımı alıyorum.
             * var key = Encoding.ASCII.GetBytes(_appSettings.SecretKey);
             *
             * var tokenDescriptor = new SecurityTokenDescriptor
             * {
             *  //Özel olarak şu Claimler olsun dersek buraya ekleyebiliriz.
             *  Subject = new ClaimsIdentity(new[]
             *  {
             *      //İstersek string bir property istersek ClaimsTypes sınıfının sabitlerinden çağırabiliriz.
             *      new Claim("userId", user.Id.ToString()),
             *      new Claim(ClaimTypes.Name,user.Email),
             *      new Claim("Name",user.Name),
             *      new Claim("Surname",user.Surname)
             *  }),
             *  //Tokenın hangi tarihe kadar geçerli olacağını ayarlıyoruz.
             *  Expires = DateTime.UtcNow.AddMinutes(15),
             *  //Son olarak imza için gerekli algoritma ve gizli anahtar bilgisini belirliyoruz.
             *  SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
             * };
             * //Token oluşturuyoruz.
             * var _token = _tokenHandler.CreateToken(tokenDescriptor);
             * //Oluşturduğumuz tokenı string olarak bir değişkene atıyoruz.
             * string generatedToken = _tokenHandler.WriteToken(_token);
             *
             * // Sonuçlarımızı tuple olarak dönüyoruz.
             * return (user.Email, generatedToken);
             * // return ("", "");
             *
             */
            #endregion
        }
Example #6
0
        public ServiceResult <TokenUser> IlanRefreshTokenLogin(string refreshToken)
        {
            try
            {
                if (refreshToken != null)
                {
                    VakifDb db = new VakifDb(_appSettings.ConnStr);

                    var sonuc = db.CheckRefreshToken(refreshToken);

                    if (sonuc.Veri.Rows.Count > 0 && (DateTime)(sonuc.Veri.Rows[0]["RefreshTokenEndDate"]) > DateTime.Now)
                    {
                        MyTokenHandler tokenHandler = new MyTokenHandler(_appSettings);
                        Token          token        = tokenHandler.CreateAccessToken();

                        string applicantId = sonuc.Veri.Rows[0]["ID"].ToString();

                        db.SetRefreshToken(token, applicantId);

                        Auth.User user = new Auth.User()
                        {
                            PersonelID   = int.Parse(sonuc.Veri.Rows[0]["ID"].ToString()),
                            TCKimlikNo   = sonuc.Veri.Rows[0]["TCKimlikNo"].ToString(),
                            Name         = sonuc.Veri.Rows[0]["Adi"].ToString(),
                            Surname      = sonuc.Veri.Rows[0]["Soyadi"].ToString(),
                            DogumTarihi  = (DateTime)(sonuc.Veri.Rows[0]["DogumTarihi"]),
                            DogumYeri    = sonuc.Veri.Rows[0]["DogumYeri"].ToString(),
                            MedeniDurumu = sonuc.Veri.Rows[0]["MedeniHali"].ToString(),
                            Cinsiyet     = sonuc.Veri.Rows[0]["Cinsiyeti"].ToString(),
                            Email        = sonuc.Veri.Rows[0]["EPosta"].ToString(),
                        };

                        return(new ServiceResult <TokenUser>()
                        {
                            isSuccessfull = true, ResultCode = 0, ResultData = new TokenUser()
                            {
                                Token = token, User = user
                            }, ResultExplanation = "Giriş Başarılı!"
                        });
                    }
                    else
                    {
                        return(new ServiceResult <TokenUser>()
                        {
                            isSuccessfull = true, ResultCode = 1, ResultData = null, ResultExplanation = sonuc.Mesaj
                        });
                    }
                }
                else
                {
                    return(new ServiceResult <TokenUser>()
                    {
                        isSuccessfull = true, ResultCode = 1, ResultData = null, ResultExplanation = "RefreshToken boş olamaz!"
                    });                                                                                                                                                //throw new Exception();
                }
            }
            catch (Exception exc)
            {
                return(new ServiceResult <TokenUser>()
                {
                    isSuccessfull = false, ResultCode = 2, ResultData = null, ResultExplanation = exc.Message
                });
            }
        }