mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-05-07 20:32:26 +00:00
67 lines
1.9 KiB
PHP
67 lines
1.9 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Providers;
|
|
|
|
use App\Models\Organization;
|
|
use App\Models\Passport\AuthCode;
|
|
use App\Models\Passport\Client;
|
|
use App\Models\Passport\RefreshToken;
|
|
use App\Models\Passport\Token;
|
|
use App\Policies\OrganizationPolicy;
|
|
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
|
|
use Laravel\Jetstream\Jetstream;
|
|
use Laravel\Passport\Passport;
|
|
|
|
class AuthServiceProvider extends ServiceProvider
|
|
{
|
|
/**
|
|
* The model to policy mappings for the application.
|
|
*
|
|
* @var array<class-string, class-string>
|
|
*/
|
|
protected $policies = [
|
|
Organization::class => OrganizationPolicy::class,
|
|
];
|
|
|
|
/**
|
|
* Register any authentication / authorization services.
|
|
*/
|
|
public function boot(): void
|
|
{
|
|
// define scopes for passport tokens
|
|
Passport::tokensCan([
|
|
'create' => 'Create resources',
|
|
'read' => 'Read Resources',
|
|
'update' => 'Update Resources',
|
|
'delete' => 'Delete Resources',
|
|
]);
|
|
|
|
// default scope for passport tokens
|
|
Passport::setDefaultScope([
|
|
// 'create',
|
|
'read',
|
|
// 'update',
|
|
// 'delete',
|
|
]);
|
|
|
|
Passport::useTokenModel(Token::class);
|
|
Passport::useRefreshTokenModel(RefreshToken::class);
|
|
Passport::useAuthCodeModel(AuthCode::class);
|
|
Passport::useClientModel(Client::class);
|
|
|
|
Passport::authorizationView('auth.oauth.authorize');
|
|
|
|
// Passport::tokensExpireIn(now()->addDays(15));
|
|
// Passport::refreshTokensExpireIn(now()->addDays(30));
|
|
Passport::personalAccessTokensExpireIn(now()->addMonths(12));
|
|
|
|
// same as passport default above
|
|
Jetstream::defaultApiTokenPermissions(['read']);
|
|
|
|
// use passport scopes for jetstream token permissions
|
|
Jetstream::permissions(Passport::scopeIds());
|
|
}
|
|
}
|