/
itp_practice
/
itp_backend
Обзор
Документация
Войти
/
itp_practice
/
itp_backend
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
app/Http/Controllers/Auth/TelegramAuthController.php
49 строк
1 KB
vivanenko
tg register
29 май 2025, 19:11
29 май 2025, 19:11
94c4ab4
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers\Auth; use App\DTOs\Auth\TelegramAuthData; use App\Http\Controllers\Controller; use App\Services\Auth\TelegramAuthService; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; use Illuminate\Support\Str; class TelegramAuthController extends Controller { public function __construct(private readonly TelegramAuthService $authService) {} public function generateHash(Request $request): JsonResponse { $token = Str::password(12, true, true, false); return response()->json([ 'token' => $token, 'botUsername' => config('services.telegram.bot_username'), ]); } public function isAuth(Request $request): JsonResponse { $user = $this->authService->getUserByStartToken($request->get('hash')); return response()->json([ 'success' => true, 'user' => $user, 'token' => $user?->createToken( $request->get('hash') )?->plainTextToken ]); } public function webhook(Request $request) { $data = TelegramAuthData::fromTelegramWebhook($request->all()); $this->authService->authenticate($data); Log::info('TG Hook', $data->toArray()); return response('OK'); } }