mirror of
https://github.com/elyby/accounts.git
synced 2024-11-30 02:32:26 +05:30
Исправлен рендеринг QR кода для пользователей с короткими username или email
This commit is contained in:
parent
9a852e8052
commit
5480e3c8ef
@ -131,6 +131,8 @@ class TwoFactorAuthForm extends ApiForm {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function drawQrCode(string $content): string {
|
public function drawQrCode(string $content): string {
|
||||||
|
$content = $this->forceMinimalQrContentLength($content);
|
||||||
|
|
||||||
$renderer = new Svg();
|
$renderer = new Svg();
|
||||||
$renderer->setMargin(0);
|
$renderer->setMargin(0);
|
||||||
$renderer->setForegroundColor(new Rgb(32, 126, 92));
|
$renderer->setForegroundColor(new Rgb(32, 126, 92));
|
||||||
@ -158,4 +160,20 @@ class TwoFactorAuthForm extends ApiForm {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* В используемой либе для рендеринга QR кода нет возможности указать QR code version.
|
||||||
|
* http://www.qrcode.com/en/about/version.html
|
||||||
|
* По какой-то причине 7 и 8 версии не читаются вовсе, с логотипом или без.
|
||||||
|
* Поэтому нужно иначально привести строку к длинне 9 версии (91), добавляя к концу
|
||||||
|
* строки необходимое количество символов "#". Этот символ используется, т.к. нашим
|
||||||
|
* контентом является ссылка и чтобы не вводить лишние параметры мы помечаем добавочную
|
||||||
|
* часть как хеш часть и все программы для чтения QR кодов продолжают свою работу.
|
||||||
|
*
|
||||||
|
* @param string $content
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
private function forceMinimalQrContentLength(string $content): string {
|
||||||
|
return str_pad($content, 91, '#');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user