Nová knihovna pro Nette jménem Discord Token Revoke

author EncryptSL - před 7 měsíci | Přečteno 59

Ahoj, jelikož jsem před dávnou dobou přešel na přihlašování pomocí Discordu, tak jsem potřeboval lehkou knihovničku na odvolávání tokenů.

Ovšem skoro žádná nebyla a já narazil na problém, že sakra jak to udělám přece potřebuji aby se odvolávali tokeny když se uživatel odhlásí. Hodiny a hodiny jsem hledal řešení jak tento problém vyřešit, nakonec po mnoha neúspěších a problémech se zrodila knihovnička pod jménem Discord Token Revoke.

Kdo má tento zrod na svědomí ? Právě já a pomocník Nette Framework, po rozhodování jestli udělám knihovničku více sofistikovanou nebo jí nechám jen tak holou a na uživateli jak se rozhodne. Jsem si řekl že ne a jelikož jsem velkým milovníkem Nette frameworku tak jsem udělal kroky k tomu aby tahle knihovna vznikla za pomocí DI rozšíření jsem začal psát. A výsledek ? Přece úžasný pravda problém byl s composerem a balíčky nikdy jsem do packagist nedával žádný balíček. Stálo to ale za to nová zkušenost s nette di a tvorbou rozšíření.

StateVersionBranchNettePHP
Stable v1.6 main 3.0 >=7.2

Tak jak tuto knihovničku nainstalovat je to jednoduché.

Instalace

  • composer require devtoolcz/discordtokenrevoke

Nastavení

extensions:
    revoke: Devtoolcz\Discordtokenrevoke\Nette\DI\RevokeExtension
revoke:
    clientId: your discord application id
    clientSecret: your discord application secret key
    api_url: 'https://discord.com/api/v8'

Jak volat rozšíření v modelu.

use Devtoolcz\Discordtokenrevoke\DiscordRevoke;
use Nette\Security\User;

class DiscordRevokeFactory
{
    /** @var DiscordRevoke */
    private $discordRevoke;

    /** @var User */
    private $user;

    public function __construct(User $user, DiscordRevoke $discordRevoke)
    {
        $this->user = $user;
        $this-->discordRevoke = $discordRevoke;
    }

    public function revokeRequest() 
    {
        $this->discordRevoke->setToken($this->user->identity->token);
        $this->discordRevoke->sendRevokeRequest('/oauth2/token/revoke');
    }
}

Jak volat rozšíření v Presenteru.

use Nette;
use Devtoolcz\Discordtokenrevoke\DiscordRevoke;

final class ExamplePresenter extends Nette\Application\UI\Presenter
{

    /** @var DiscordRevoke @inject */
    public $discordRevoke;

    public function actionDiscordLogout()
    {
        $this->discordRevoke->setToken($this->user->identity->token);
        $this->discordRevoke->sendRevokeRequest('/oauth2/token/revoke');
    }
}

Odkaz na rozšíření Klikni zde

ZPÁTKY NA ČLÁNKY