Files
daily-meal-api/app/Http/Controllers/MobileSocialAuthController.php
leonm ddc80956a0
CI / 🧪 Tests Laravel (push) Failing after 9s
CI / 🐳 Build & Push Images (push) Has been skipped
feat: google login
2026-08-17 10:06:35 +02:00

43 lines
1.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Actions\AuthenticateSocialUser;
use App\Enums\SocialProvider;
use App\Http\Requests\MobileSocialLoginRequest;
use App\Http\Requests\MobileSocialNonceRequest;
use App\Http\Resources\UserResource;
use App\Services\SocialAuthenticationNonce;
use Illuminate\Http\JsonResponse;
class MobileSocialAuthController extends Controller
{
public function nonce(
MobileSocialNonceRequest $request,
SocialAuthenticationNonce $socialAuthenticationNonce,
): JsonResponse {
$provider = SocialProvider::from($request->validated('provider'));
return response()->json([
'nonce' => $socialAuthenticationNonce->issue($provider),
]);
}
public function store(
MobileSocialLoginRequest $request,
AuthenticateSocialUser $authenticateSocialUser,
): JsonResponse {
$data = $request->validated();
$user = $authenticateSocialUser->execute($data);
$deviceName = $data['device_name'] ?? null;
$tokenName = is_string($deviceName) && trim($deviceName) !== ''
? trim($deviceName)
: 'mobile';
return response()->json([
'token' => $user->createToken($tokenName)->plainTextToken,
'user' => new UserResource($user),
]);
}
}