Я пытаюсь реализовать 2FA с Authy и с помощью аутентичный php библиотека и ключ API авторизации для добавления пользователей в систему аутентификации, чтобы пользователь мог сканировать QR-код и получать аутентификацию моего приложения в телефоне.
Я сделал документацию, как указано в этом страница библиотеки github. Пользовательские данные успешно сохраняются, но я получаю некоторый случайный числовой секретный ключ (который генерируется для пользователя с помощью authy) секрет для хранения в базе данных, если я ввожу этот секрет в приложение, которое он показывает секретный ключ неверен ошибка, оформить скриншоты ниже
Нам нужно ввести секрет примерно так, но я получаю числовой секрет, если я ввожу это вручную, приложение показывает ошибку, как показано на скриншоте ниже.
документация как ниже
require_once dirname(__DIR__) . '/extra/Authy/vendor/autoload.php';
$authy_api = new Authy\AuthyApi('MY_API_KEY');
$user = $authy_api->registerUser('[email protected]', '9999999999', 91); // (email, phone number, country code)
if($user->ok()){
echo json_encode($user->id());
}else{
foreach($user->errors() as $field => $message) {
printf("$field = $message");
}
}
и еще одна проблема, как я могу создать QR-код, который может понять Authy? Я искал некоторые, и я не получил никаких решений. Помогите мне, пожалуйста.
Twilio / Authy разработчик евангелист здесь.
Я должен извиниться, наша документация немного задержалась. Я постараюсь помочь.
Прежде всего, я рекомендую вам просмотреть эту документацию на двухфакторная аутентификация с Twilio и Authy.
Во-вторых, позвольте мне объяснить процесс с Authy относительно того, как далеко вы продвинулись.
Вы правильно настроили API и учетные данные, а затем зарегистрировали пользователя с помощью вызова $authy_api->registerUser
, Идентификатор пользователя, полученный вами из этого ответа, не должен передаваться никому. Это ваша ссылка на вашего пользователя в базе данных Authy. Вы должны хранить этот идентификатор против пользователя, который регистрируется, и использовать этот идентификатор каждый раз, когда вам нужно отправить коды или проверить коды.
Вам не нужно использовать QR-коды, чтобы поделиться чем-либо с пользователем. Чтобы начать процесс двухфакторной аутентификации, вам нужно позвонить:
$authy_api->requestSMS($userID);
С идентификатором, который вы получили от API в качестве $usedID
в этом коде.
Вызов метода предполагает, что он собирается отправить SMS, но это всего лишь наследство.
Наконец, как только пользователь введет код на вашем сайте, вы должны позвонить проверить токен:
$authy_api->verifyToken($userID, $token);
В этом случае $userID
это тот идентификатор, который вы получили от registerUser
Сначала позвоните и сохраните его для своего пользователя. $token
это код, который они вводят из приложения или SMS.
Пожалуйста, дайте мне знать, если это поможет или у вас есть другие вопросы.
Других решений пока нет …