Skip to content

Commit d09615b

Browse files
committed
Update Passport
1 parent bcdb426 commit d09615b

3 files changed

Lines changed: 51 additions & 0 deletions

File tree

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use Illuminate\Http\Request;
6+
use Illuminate\Support\Facades\Auth;
7+
use Laravel\Passport\Contracts\AuthorizationViewResponse;
8+
use Laravel\Passport\Http\Controllers\AuthorizationController as PassportAuthorizationController;
9+
use Psr\Http\Message\ResponseInterface;
10+
use Psr\Http\Message\ServerRequestInterface;
11+
use Symfony\Component\HttpFoundation\Response;
12+
13+
class AuthorizationController extends PassportAuthorizationController
14+
{
15+
public function authorize(
16+
ServerRequestInterface $psrRequest,
17+
Request $request,
18+
ResponseInterface $psrResponse,
19+
AuthorizationViewResponse $viewResponse
20+
): Response|AuthorizationViewResponse {
21+
if ($request->user() && $request->user()->status != 1) {
22+
Auth::logout();
23+
24+
return redirect('/login');
25+
}
26+
27+
return parent::authorize($psrRequest, $request, $psrResponse, $viewResponse);
28+
}
29+
}

app/Providers/AppServiceProvider.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ public function boot(): void
102102
app(UserActivityService::class)->markActive($e->user);
103103
});
104104

105+
Passport::ignoreRoutes();
105106
Passport::authorizationView('auth.oauth.authorize');
106107
Passport::tokensCan([
107108
'user:read' => 'Retrieve the user info',

routes/web.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,30 @@
11
<?php
22

3+
use App\Http\Controllers\Auth\AuthorizationController;
34
use App\Http\Controllers\ObjectController;
45
use App\Http\Controllers\ProfileLinkRedirectController;
56
use Illuminate\Support\Facades\Auth;
67
use Illuminate\Support\Facades\Route;
8+
use Laravel\Passport\Http\Controllers;
9+
10+
Route::get('/oauth/authorize', [AuthorizationController::class, 'authorize'])
11+
->middleware('web')
12+
->name('passport.authorizations.authorize');
13+
14+
Route::post('/oauth/token', [Controllers\AccessTokenController::class, 'issueToken'])
15+
->middleware('throttle')
16+
->name('passport.token');
17+
18+
Route::middleware(['web', 'auth:web'])->group(function () {
19+
Route::post('/oauth/authorize', [Controllers\ApproveAuthorizationController::class, 'approve'])
20+
->name('passport.authorizations.approve');
21+
22+
Route::delete('/oauth/authorize', [Controllers\DenyAuthorizationController::class, 'deny'])
23+
->name('passport.authorizations.deny');
24+
25+
Route::post('/oauth/token/refresh', [Controllers\TransientTokenController::class, 'refresh'])
26+
->name('passport.token.refresh');
27+
});
728

829
Route::get('/r/pl/{pid}/{lid}', [ProfileLinkRedirectController::class, 'redirect']);
930

0 commit comments

Comments
 (0)