Как создать двухэтапную аутентификацию Java на Java 8? - PullRequest
0 голосов
/ 31 октября 2018

Привет всем на 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

1 Ответ

0 голосов
/ 31 октября 2018

Во-первых, я предлагаю вам поместить свои данные в карту, объединить имя пользователя, пароль, номер телефона в один класс, например 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.
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...