You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
703 B

2 weeks ago
<?php
namespace App\Http\Controllers\Miniapp;
use App\Http\Controllers\Controller;
use App\Models\MiniappUser;
use Illuminate\Http\Request;
use Laravel\Sanctum\PersonalAccessToken;
abstract class BaseController extends Controller
{
protected function optionalUser(Request $request): ?MiniappUser
{
$user = $request->user();
if ($user instanceof MiniappUser) {
return $user;
}
$token = $request->bearerToken();
if (! $token) {
return null;
}
$accessToken = PersonalAccessToken::findToken($token);
$model = $accessToken?->tokenable;
return $model instanceof MiniappUser ? $model : null;
}
}