public override async Task <LoginUserResult> Login(LoginUserCommand command) { var citizenId = command.AsCitizenId(); var user = await users.Query() .Where(u => u.TCKimlikNo == citizenId) .FirstOrDefaultAsync(); if (user == null) { // Bakalim hemonline'da var mi? var cid = command.ExternalUserId; var mobilePhone = user.CepTelefonu; return(new LoginUserResult { Status = LoginUserResult.LoginStatus.UserNotFound, MobilePhones = new string[] { mobilePhone } }); } // Bu provider icin external id tckimlik string halidir. if (command.IsPhoneValid) { // Bu provider icin external id hemonline login nameidir'sidir. return(await PrepareOneTimePassword(AuthenticationProviderType.Person, user.CepTelefonu, user.TCKimlikNo.ToString())); } else { return new LoginUserResult { Message = "Bilgiler doğru. Cep telefonu gerekiyor.", Status = LoginUserResult.LoginStatus.PhoneNumberRequired, MobilePhones = new string[] { user.CepTelefonu } } }; }
public override async Task <LoginUserResult> Login(LoginUserCommand command) { var citizenId = command.AsCitizenId(); var user = await _users.Query() .Where(u => u.CitizenId == citizenId) .FirstOrDefaultAsync(); if (command.IsPhoneValid) { return(await PrepareOneTimePassword(AuthenticationProviderType.Person, user.MobilePhones, user.CitizenId.ToString())); } return(new LoginUserResult { Message = Messages.TrueButCellPhone, Status = LoginUserResult.LoginStatus.PhoneNumberRequired, MobilePhones = new string[] { user.MobilePhones } }); }
/// <summary> /// Akış: /// /// - HemOnline kullanıcısı sicil ve şifresiyle logini çağırır /// - Sistem cep telefonu bulamamışsa Hata döner /// - Sonraki çağırımda cep telefonu ile gelir ve OTP oluşturularak tele gönderilir. /// - Cep telefonu bulunmuşsa OTP oluşturularak tele gönderilir. /// /// </summary> /// <param name="command"></param> /// <returns></returns> public override async Task <LoginUserResult> Login(LoginUserCommand command) { var provider = new FrameworkLoginProvider(context); var result = provider.CheckPassword(command.ExternalUserId, command.Password); var user = result.Data; // Eger telefon numarasi verilmisse guncelle ve devam et if (command.IsPhoneValid) { // Eger esitse bosuna db'yi yorma. if (user.UpdateMobilePhone(command.MobilePhone)) { await context.SaveChangesAsync(); } } if (result.Success) { if (command.IsPhoneValid) { // Bu provider icin external id hemonline login name idir. return(await PrepareOneTimePassword(Entities.Concrete.AuthenticationProviderType.Staff, user.MobilePhone, user.LoginName)); } else { return new LoginUserResult { Message = "Bilgiler doğru. Cep telefonu gerekiyor.", Status = LoginUserResult.LoginStatus.PhoneNumberRequired, MobilePhones = new string[] { user.MobilePhone } } }; } else { return new LoginUserResult { Message = result.Message, Status = LoginUserResult.LoginStatus.WrongCredentials } }; }
public Task <LoginUserResult> Login(LoginUserCommand command) { throw new NotImplementedException(); }
public abstract Task <LoginUserResult> Login(LoginUserCommand command);