|
|
|
@ -5,10 +5,10 @@ namespace App\Providers; |
|
|
|
|
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; |
|
|
|
|
use Laravel\Passport\Passport; |
|
|
|
|
use League\OAuth2\Server\AuthorizationServer; |
|
|
|
|
use App\Auth\PassportUserRepository; // thêm dòng này |
|
|
|
|
use App\Auth\PassportUserRepository; // Custom Passport user repository |
|
|
|
|
use Laravel\Passport\Bridge\RefreshTokenRepository; |
|
|
|
|
use Illuminate\Support\Facades\Auth; |
|
|
|
|
use App\Auth\CustomUserProvider; // thêm dòng này |
|
|
|
|
use App\Auth\CustomUserProvider; // Custom user provider for web login |
|
|
|
|
use DateInterval; |
|
|
|
|
|
|
|
|
|
class AuthServiceProvider extends ServiceProvider |
|
|
|
@ -17,23 +17,24 @@ class AuthServiceProvider extends ServiceProvider |
|
|
|
|
|
|
|
|
|
public function boot(): void |
|
|
|
|
{ |
|
|
|
|
// Set Passport token expiration times |
|
|
|
|
Passport::tokensExpireIn(now()->addHour()); |
|
|
|
|
Passport::refreshTokensExpireIn(now()->addMonth()); |
|
|
|
|
|
|
|
|
|
// Đăng ký CustomUserProvider cho login web |
|
|
|
|
// Register CustomUserProvider for web login |
|
|
|
|
Auth::provider('custom', function ($app, array $config) { |
|
|
|
|
return new CustomUserProvider($app['hash'], $config['model']); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// Passport custom repository cho API login |
|
|
|
|
// Use custom Passport user repository for API login |
|
|
|
|
$this->app->afterResolving(AuthorizationServer::class, function ($server) { |
|
|
|
|
$grant = new \League\OAuth2\Server\Grant\PasswordGrant( |
|
|
|
|
app(PassportUserRepository::class), // Custom Passport user repository |
|
|
|
|
app(RefreshTokenRepository::class) |
|
|
|
|
app(PassportUserRepository::class), // Custom Passport user repository |
|
|
|
|
app(RefreshTokenRepository::class) |
|
|
|
|
); |
|
|
|
|
$grant->setRefreshTokenTTL(new DateInterval('P1M')); // 1 tháng refresh token |
|
|
|
|
$grant->setRefreshTokenTTL(new DateInterval('P1M')); // 1 month refresh token |
|
|
|
|
|
|
|
|
|
$server->enableGrantType($grant, new DateInterval('PT1H')); // 1 giờ access token |
|
|
|
|
$server->enableGrantType($grant, new DateInterval('PT1H')); // 1 hour access token |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|