azate/laravel-telegram-login-auth

Laravel Telegram Login Auth


Keywords
auth, laravel, telegram, telegram-login
License
MIT

Documentation

Telegram Login for Laravel

License Latest Stable Version Total Downloads

This package is a Laravel service provider which provides support for Laravel Login and is very easy to integrate with any project that requires Telegram authentication.

Installation

Require this package with composer.

composer require azate/laravel-telegram-login-auth

Laravel >=5.5 uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider.

Copy the package config to your local config with the publish command:

php artisan vendor:publish --provider="Azate\LaravelTelegramLoginAuth\Providers\LaravelServiceProvider" --tag=config

Usage example

Setup information Telegram Login Widget

Not detailed errors

// app/Http/Controllers/AuthController.php
namespace App\Http\Controllers;

// ...
use Azate\LaravelTelegramLoginAuth\TelegramLoginAuth;
use Illuminate\Http\Request;

// ...
public function handleTelegramCallback(TelegramLoginAuth $telegramLoginAuth, Request $request)
{
    if ($user = $telegramLoginAuth->validate($request)) {
        // ...
    }

    // ...
}

With detailed errors

// app/Http/Controllers/AuthController.php
namespace App\Http\Controllers;

// ...
use Azate\LaravelTelegramLoginAuth\Contracts\Telegram\NotAllRequiredAttributesException;
use Azate\LaravelTelegramLoginAuth\Contracts\Validation\Rules\ResponseOutdatedException;
use Azate\LaravelTelegramLoginAuth\Contracts\Validation\Rules\SignatureException;
use Azate\LaravelTelegramLoginAuth\TelegramLoginAuth;
use Illuminate\Http\Request;

// ...
public function handleTelegramCallback(TelegramLoginAuth $telegramLoginAuth, Request $request)
{
    try {
        $user = $telegramLoginAuth->validateWithError($request);
    } catch(NotAllRequiredAttributesException $e) {
        // ...
    } catch(SignatureException $e) {
        // ...
    } catch(ResponseOutdatedException $e) {
        // ...
    } catch(Exception $e) {
        // ...
    }

    // ...
}