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
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;
|
||
|
|
}
|
||
|
|
}
|