File: /home/posscale/.trash/1app.1/Http/Middleware/VerifyMainSiteToken.php
<?php
namespace App\Http\Middleware;
use App\Models\User;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Laravel\Sanctum\PersonalAccessToken;
use Symfony\Component\HttpFoundation\Response;
class VerifyMainSiteToken
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
// Get token from request
$token = $request->query('token') ?? $request->bearerToken();
if (!$token) {
return response()->json(['error' => 'Unauthorized'], 401);
}
// Switch to the main database
$mainUsers = User::on('mysql')->where('remember_token', $token)->first();
if (!$mainUsers) {
return response()->json(['error' => 'Invalid token'], 401);
}
$user = User::where('email', $mainUsers->email)->first();
if (!$user) {
$user = new User();
$user->name = $mainUsers->name;
$user->email = $mainUsers->email;
$user->password = $mainUsers->password;
$user->save();
}
// Log in the user in the tenant site
auth()->login($user);
return $next($request);
}
}