AuthRepositoryInterface.php 804 B

1234567891011121314151617181920212223242526
  1. <?php
  2. namespace App\Repositories;
  3. use App\Models\User;
  4. use App\Models\PersonalAccessToken;
  5. use App\DataTransferObjects\AuthDto;
  6. interface AuthRepositoryInterface
  7. {
  8. public function findUserByEmail(string $email): ?User;
  9. public function findToken(string $token): ?PersonalAccessToken;
  10. public function createAccessToken(User $user, string $deviceId): string;
  11. public function createRefreshToken(User $user, string $deviceId): string;
  12. public function updateTokenExpiration(PersonalAccessToken $token, \DateTime $expirationTime): void;
  13. public function deleteUserTokensByDevice(User $user, string $deviceId): void;
  14. public function attemptLogin(AuthDto $credentials): bool;
  15. public function refreshToken(PersonalAccessToken $token, User $user, string $deviceId): array;
  16. }