Files
gsf/app/Http/Middleware/JwtMiddleware.php

57 lines
1.9 KiB
PHP
Raw Permalink Normal View History

2024-08-09 17:11:41 +05:30
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use JWTAuth;
use Session;
use Exception;
use Tymon\JWTAuth\Http\Middleware\BaseMiddleware;
use App\Models\User;
use Carbon\Carbon;
use Auth;
class JwtMiddleware extends BaseMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
try {
$token = $request->header('access-token');
$data = JWTAuth::setToken($token)->getPayload();
// dd($data['sub']);
$user = User::find($data['sub']);
// dd($user);
$subscriptionEndDate = Carbon::parse($user->end_date);
// dd($subscriptionEndDate);
$todaysDate = Carbon::now()->toDateString();
$subscriptionEndsIn7Days = $subscriptionEndDate->addDays(7)->toDateString();
if($subscriptionEndsIn7Days == null || $subscriptionEndsIn7Days < $todaysDate)
{
// Auth::logout();
$logout = auth('api')->logout();
return response()->json(['success' => false,'status' => 'Authentication failed.']);
}
} catch (Exception $e) {
if ($e instanceof \Tymon\JWTAuth\Exceptions\TokenInvalidException){
return response()->json(['status' => 'Token is Invalid']);
}else if ($e instanceof \Tymon\JWTAuth\Exceptions\TokenExpiredException){
return response()->json(['status' => 'Token is Expired']);
}else{
return response()->json(['status' => 'Authorization Token not found' , 'status_code' => 201]);
}
}
Session::flash('tokenData', $token);
return $next($request);
}
}