wearesho-team/yii-tokens

This package is abandoned and no longer maintained. The author suggests using the wearesho-team/yii2-tokens package instead.

Yii2 Tokens Library (internal, legacy)

Installs: 560

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 3

Forks: 0

Open Issues: 0

Type:proprietary

4.1.0 2024-11-12 16:26 UTC

README

Scrutinizer Code Quality Code Coverage Build Status

Verifying some action by sending token (SMS, Email, Telegram etc.) Compatible only with MySQL and PostgreSQL
CHANGELOG

Installation

composer require wearesho-team/yii-tokens:^3.0

Migrations

  • Copy migrations into your project
cd path-to-your-project
cp -R ./vendor/wearesho-team/yii-tokens/migrations ./console/migrations

Configuration

Environment

Default TokenRepositoryConfig loads configuration from environment variables. Environment variables name may be changed, defaults:

  • TOKEN_EXPIRE_MINUTES - minutes from creating token when it will be invalidated
  • TOKEN_VERIFY_LIMIT - maximum verifying limit (used by TokenValidator)
  • TOKEN_DELIVERY_LIMIT - maximum sending limit (used by TokenRepository, send method)

Container

You should configure your DI-container to use environment config:

<?php
// bootstrap.php

use Wearesho\Yii\Interfaces\TokenRepositoryConfigInterface;
use Wearesho\Yii\Configs\TokenRepositoryConfig;

Yii::$container->set(
    TokenRepositoryConfigInterface::class,
    [
        'class' => TokenRepositoryConfig::class,
        
        // Changing environment variables names
        'expirePeriodKey' => 'TOKEN_EXPIRE_MINUTES', // optional
        'verifyLimitKey' => 'TOKEN_VERIFY_LIMIT', // optional
        'deliveryLimitKey' => 'TOKEN_DELIVERY_LIMIT', // optional
        
        // Defaults (if no env variables set)
        'defaultExpirePeriod' => 30, // optional
        'defaultDeliveryLimit' => 3, // optional
        'defaultVerifyLimit' => 3, // optional
    ]
);

Contribution

Run Tests

Run test MySQL database

docker compose up -d

Run tests

composer lint
composer test

Down test MySQL database

docker compose down

TODO

  1. Documentation
  2. Tests for exceptions

License

Unlicensed