Всем привет в StackOverflow!

Я задам вопрос, который меня запутал и который искал часами, это поставить двухэтапную аутентификацию в программе Java, я хочу, чтобы сгенерированный код отправлялся на страницу входа, подобную той, которую я создал. ниже.

package log;

import javax.swing.JOptionPane;

public class Login {

    public static void main(String args[]) {

        String username = JOptionPane.showInputDialog("Enter your username");
        String password = JOptionPane.showInputDialog("Enter your password");

        if (

                username != null && password != null &&
                (

                    (username.equals("g17") && password.equals("ire35")) ||
                    (username.equals("ree") && password.equals("melikejava")) ||
                    (username.equals("citizenzap") && password.equals("javarules23"))||
                    (username.equals("devs") && password.equals("password"))
                )
           )
        {
                JOptionPane.showMessageDialog(null, "Logged in!" );
        }   else {
                JOptionPane.showMessageDialog(null, "Incorrect username or password! Try again later." );
        }
    }
}

С приведенным выше кодом все в порядке, просто я хочу отправить случайно сгенерированный код на номер телефона, как я уже говорил перед двухэтапной проверкой. Как Google, Microsoft и т. Д. Например: вы пишете номер телефона, 123-456-7890, затем он отправляет код на номер телефона, и он говорит что-то вроде Your code is 178634, затем вы вводите его в поле ввода , затем он проверяет, был ли это отправленный код.

Если вопрос, который я сказал, недостаточно конкретен или что-то в этом роде, пожалуйста, сообщите мне.

Спасибо и продолжайте кодировать!

-CitizenZap

0
JustZap 31 Окт 2018 в 03:48

1 ответ

Лучший ответ

Во-первых, я предлагаю вам поместить свои данные на карту, объединить имя пользователя, пароль и phoneNumber в один класс, например UserInfo. Потому что вам нужно привязать phoneNumber к пользователю или любой phoneNumber после входа в систему.

Затем вы заменяете

    {
            JOptionPane.showMessageDialog(null, "Logged in!" );
    }

С участием

    String newPhoneNumber = null;

    {
            newPhoneNumber = JOptionPane.showInputDialog("Enter your phone number");
    }

Вам нужно проверить, совпадает ли newPhoneNumber с привязкой phoneNumber к пользователю.

    // this should be in a while(true) loop
    if (newPhoneNumber.equals(phoneNumber)) {
        sendSms(phoneNumber);
        String code = JOptionPane.showInputDialog("Enter your code");
        boolean result = validateAuthorizationCode(code); // here you validate the code
       if (result) {
           JOptionPane.showMessageDialog(null, "Logged in!" );
       } else {
           JOptionPane.showMessageDialog(null, "Wrong code!" );
       }
    } else {
        noticeWrongNumber(newPhoneNumber); // tell him the number is wrong, please reinput.
    }
0
Bejond 31 Окт 2018 в 01:42