---
title: "Aktivácia — Two-Factor for Laravel | Roundly"
description: "Spustite čakajúcu aktiváciu, raz zobrazte tajný kľúč, URI pre QR kód a záložné kódy a potvrďte ju prvým kódom z aplikácie."
url: https://roundly-consulting.com/sk/open-source/navody/two-factor-for-laravel/aktivacia
language: sk
---

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

[Two-Factor for Laravel](https://roundly-consulting.com/sk/open-source/navody/two-factor-for-laravel.md)

# Aktivácia

Aktivácia má dva kroky: spustenie čakajúcej aktivácie a jej potvrdenie prvým kódom z autentifikačnej aplikácie používateľa. Kým nie je potvrdená, nič sa nepovažuje za druhý faktor.

## Spustenie

```php
use RoundlyConsulting\TwoFactor\Facades\TwoFactor;

$setup = TwoFactor::for($user)->start();

$setup->secret;          // base32 secret (store is handled for you)
$setup->provisioningUri; // otpauth://totp/Acme:user@acme.io?secret=...&issuer=Acme&...
$setup->recoveryCodes;   // list<string> — show these once, they are the only plaintext copy
$setup->issuer;          // the issuer the URI carries — show it next to the QR
```

| Vlastnosť | Typ | Obsah |
| --- | --- | --- |
| `secret` | string | Base32 tajný kľúč — už uložený a zašifrovaný. |
| `provisioningUri` | string | URI otpauth://, ktoré vykreslíte ako QR kód. |
| `recoveryCodes` | list<string> | Záložné kódy v čitateľnej podobe — jediná kópia, zobrazte ich raz. |
| `issuer` | string | Vydavateľ uvedený v URI — zobrazte ho vedľa QR kódu. |

start() vygeneruje nový tajný kľúč a záložné kódy, uloží ich s vynulovaným confirmed\_at a vyvolá TwoFactorEnrolmentStarted. Opätovné spustenie počas čakajúcej aktivácie ju reštartuje s novým kľúčom aj kódmi; spustenie pri už zapnutom 2FA vyhodí TwoFactorAlreadyEnabledException.

## Vydavateľ pre každý guard či tenanta

Vydavateľ je predvolene two-factor.issuer, inak app.name — prázdna hodnota na ktorejkoľvek úrovni sa považuje za nenastavenú. Pri každom volaní ho môžete určiť argumentom issuer — jeden názov pre každý guard či tenanta — a rovnako prepísať aj označenie účtu; URI a $setup->issuer sa vždy zhodujú:

```php
$setup = TwoFactor::for($client)->start(label: 'billing@acme.io', issuer: 'Acme Partner Portal');
```

## Potvrdenie

Používateľ naskenuje QR kód a odošle prvý kód, čím aktiváciu dokončí:

```php
TwoFactor::for($user)->confirm($request->string('code')->toString());
// throws InvalidTwoFactorCodeException on a wrong code,
// TwoFactorNotPendingException if there is no pending enrolment — including when 2FA is
// already enabled: a confirm is never a silent no-op, so a clean return always means this
// code just switched 2FA on.
```

Úspešné potvrdenie nastaví confirmed\_at, vyvolá TwoFactorConfirmed a v replay guarde zaberie potvrdzujúci časový krok, takže kód použitý na potvrdenie nemôže poslúžiť aj ako prvý prihlasovací kód.

Kód sa overuje voči riadku účtu uzamknutému pre zápis, nikdy nie voči modelu, ktorý odovzdáte — ak sa aktivácia medzitým reštartovala (napríklad v druhej karte), 2FA zapne len kód pre tajný kľúč, ktorý je práve uložený, nikdy nie kód z QR kódu, ktorý už používateľ nemá. Do tohto riadku sa zapíše len confirmed\_at; dvojfaktorové stĺpce vášho modelu sa potom zosynchronizujú z neho a ostatné neuložené atribúty modelu zostanú nedotknuté. Kód zadaný s medzerou alebo pomlčkou (123 456, 123-456) sa prijme, ak po ich odstránení zostane presne nastavený počet číslic.

## Priamo z modelu používateľa

Rovnaký postup je k dispozícii aj ako metódy traitu, s voliteľným označením účtu a vydavateľom. Delegujú na TwoFactor::for($user), takže ich vidí aj TwoFactor::fake():

```php
$setup = $user->startTwoFactorEnrolment();                  // == TwoFactor::for($user)->start()
$setup = $user->startTwoFactorEnrolment('billing@acme.io', issuer: 'Acme Billing');

$user->confirmTwoFactor($request->string('code')->toString()); // == ->confirm($code)
```

## 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/two-factor-for-laravel.md)
