---
title: "Kódy pre 2FA — QR for Laravel | Roundly"
description: "Vykreslite existujúce URI otpauth:// bez zmeny alebo vytvorte URI pre TOTP/HOTP — vždy sa s nimi zaobchádza ako s tajomstvom."
url: https://roundly-consulting.com/sk/open-source/navody/qr-for-laravel/dvojfaktorove-kody
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[QR for Laravel](https://roundly-consulting.com/sk/open-source/navody/qr-for-laravel.md)

# Kódy pre 2FA

Qr::otpauth() prijme URI otpauth://, ktoré už vytvoril iný balík, a zakóduje ho bez zmeny — napríklad provisioningUri z two-factor-for-laravel:

```php
$markup = Qr::otpauth($setup->provisioningUri)       // an existing otpauth:// URI, encoded unchanged
    ->size(240)
    ->errorCorrection(ErrorCorrection::Medium)
    ->title(__('Scan with your authenticator app'))
    ->svg()
    ->toString();
```

## Vytvorenie URI

Otpauth::totp() deleguje na builder provisioning URI z crypto-for-laravel, takže výsledok je bajtovo zhodný s URI z two-factor-for-laravel. hotp() používa rovnaké pravidlá kódovania a navyše počítadlo:

```php
use RoundlyConsulting\Crypto\Otp\OtpAlgorithm;
use RoundlyConsulting\Qr\Payloads\Otpauth;

// byte-identical to crypto-for-laravel's provisioning URI:
$totp = Otpauth::totp(secret: $secret, account: 'user@acme.io', issuer: 'Acme', algorithm: OtpAlgorithm::Sha256, digits: 6, period: 30);
$hotp = Otpauth::hotp(secret: $secret, account: 'user@acme.io', issuer: 'Acme', counter: 0);
$parsed = Otpauth::fromUri($uri);                     // ->type(), ->issuer(), ->account()

Qr::otpauth($totp)->svg();
```

- fromUri() zachová zadaný reťazec bajt po bajte; overí schému otpauth, typ totp/hotp, neprázdny účet a kanonický base32 secret.
- Voliteľne algorithm (SHA1, SHA256, SHA512), digits 6–10 a period ≥ 1; hotp vyžaduje counter ≥ 0. URI môže mať najviac 1024 bajtov.
- Vydavatelia s dvojbodkou (napr. Acme: Admin) sa zo zakódovaného labelu parsujú správne.

## Vždy tajné

Kódy 2FA majú vždy Sensitivity::Secret — nikdy sa nememoizujú ani necachujú, servírujú sa s Cache-Control: no-store a bez ETagu — a citlivosť sa nedá znížiť. Rovnako sa zaobchádza s každým reťazcom, ktorý (po úvodných medzerách vrátane Unicode medzier a znaku BOM, v ľubovoľnej veľkosti písmen) začína na otpauth:, otpauth-migration: alebo WIFI:, nech prejde ktorýmkoľvek vstupným bodom — Qr::make(), Qr::text(), Qr::svg(), <x-qr-code> alebo Qr::url() s povolenou schémou; obsah WIFI: je tiež Secret, no citlivosť sa dá znížiť ako pri Qr::wifi(). Tajomstvá sú označené #\[SensitiveParameter\], takže sa nikdy neobjavia v stack trace — ani vo vlastnom rámci fasády Qr.

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/qr-for-laravel.md)
