I added expiration time to sanctum config
'expiration' => now()->addMinutes(15), // One hour
'rt_expiration' => now()->addDays(7), // 7 Days
This is my function to authenticate the user
public function login(LoginRequest $loginRequest, Utils $utils)
{
if (!auth()->attempt(request()->only(['username', 'password']))) {
return $utils->message( "error", "Invalid Username/Password", 401);
}
if (Auth::user()->role=="Agent")
$user = Agent::where("user_id", Auth::user()->id)->firstOrFail();
else
$user = NewCustomer::where("user_id", Auth::user()->id)->firstOrFail();
$loginRequest->get("device_id");
$authUser = Auth::user();
$success['token'] = $authUser->createToken('access_token', [TokenAbility::ACCESS_API->value], Carbon::now()->addMinutes(15));
$success['refreshToken'] = $authUser->createToken('refresh_token', [TokenAbility::ISSUE_ACCESS_TOKEN->value], config('sanctum.rt_expiration'));
$success['first_name'] = $user->first_name;
$success['last_name'] = $user->last_name;
$success['username'] = $authUser->username;
$success['wallet'] = number_format(Agent::where("user_id", $authUser->id)->value("wallet"), 2) ;
return $utils->message("success", $success, 200);
}
I am trying to send a refresh token
Route::post('/auth/refresh-token', function (Request $request) {
$accessToken = $request->user()->createToken('access_token', [\App\Enums\TokenAbility::ACCESS_API->value], config('sanctum.expiration'));
return ['token' => $accessToken->plainTextToken];
})->middleware([
'auth:sanctum',
'ability:'.\App\Enums\TokenAbility::ISSUE_ACCESS_TOKEN->value,
]);
But I am getting this error
"message": "Unsupported operand types: Illuminate\\Support\\Carbon * int",
"exception": "TypeError",
"file": "/Users/mac/Documents/*************/vendor/nesbot/carbon/src/Carbon/Traits/Units.php",
"line": 339,