5
5
use Illuminate \Contracts \Auth \Authenticatable ;
6
6
use Illuminate \Contracts \Auth \StatefulGuard ;
7
7
use Illuminate \Http \Request ;
8
- use Illuminate \Http \Response ;
9
8
use Illuminate \Support \Facades \Date ;
10
9
use Illuminate \Support \Str ;
11
10
use Laravel \Passport \Bridge \User ;
18
17
use League \OAuth2 \Server \AuthorizationServer ;
19
18
use League \OAuth2 \Server \Entities \ScopeEntityInterface ;
20
19
use League \OAuth2 \Server \RequestTypes \AuthorizationRequestInterface ;
21
- use Nyholm \ Psr7 \ Response as Psr7Response ;
20
+ use Psr \ Http \ Message \ ResponseInterface ;
22
21
use Psr \Http \Message \ServerRequestInterface ;
22
+ use Symfony \Component \HttpFoundation \Response ;
23
23
24
24
class AuthorizationController
25
25
{
@@ -31,16 +31,19 @@ class AuthorizationController
31
31
public function __construct (
32
32
protected AuthorizationServer $ server ,
33
33
protected StatefulGuard $ guard ,
34
- protected AuthorizationViewResponse $ response ,
35
34
protected ClientRepository $ clients
36
35
) {
37
36
}
38
37
39
38
/**
40
39
* Authorize a client to access the user's account.
41
40
*/
42
- public function authorize (ServerRequestInterface $ psrRequest , Request $ request ): Response |AuthorizationViewResponse
43
- {
41
+ public function authorize (
42
+ ServerRequestInterface $ psrRequest ,
43
+ Request $ request ,
44
+ ResponseInterface $ psrResponse ,
45
+ AuthorizationViewResponse $ viewResponse
46
+ ): Response |AuthorizationViewResponse {
44
47
$ authRequest = $ this ->withErrorHandling (
45
48
fn () => $ this ->server ->validateAuthorizationRequest ($ psrRequest ),
46
49
($ psrRequest ->getQueryParams ()['response_type ' ] ?? null ) === 'token '
@@ -71,7 +74,7 @@ public function authorize(ServerRequestInterface $psrRequest, Request $request):
71
74
72
75
if ($ request ->get ('prompt ' ) !== 'consent ' &&
73
76
($ client ->skipsAuthorization ($ user , $ scopes ) || $ this ->hasGrantedScopes ($ user , $ client , $ scopes ))) {
74
- return $ this ->approveRequest ($ authRequest );
77
+ return $ this ->approveRequest ($ authRequest, $ psrResponse );
75
78
}
76
79
77
80
if ($ request ->get ('prompt ' ) === 'none ' ) {
@@ -81,7 +84,7 @@ public function authorize(ServerRequestInterface $psrRequest, Request $request):
81
84
$ request ->session ()->put ('authToken ' , $ authToken = Str::random ());
82
85
$ request ->session ()->put ('authRequest ' , $ authRequest );
83
86
84
- return $ this -> response ->withParameters ([
87
+ return $ viewResponse ->withParameters ([
85
88
'client ' => $ client ,
86
89
'user ' => $ user ,
87
90
'scopes ' => $ scopes ,
@@ -124,12 +127,12 @@ protected function hasGrantedScopes(Authenticatable $user, Client $client, array
124
127
/**
125
128
* Approve the authorization request.
126
129
*/
127
- protected function approveRequest (AuthorizationRequestInterface $ authRequest ): Response
130
+ protected function approveRequest (AuthorizationRequestInterface $ authRequest, ResponseInterface $ psrResponse ): Response
128
131
{
129
132
$ authRequest ->setAuthorizationApproved (true );
130
133
131
134
return $ this ->withErrorHandling (fn () => $ this ->convertResponse (
132
- $ this ->server ->completeAuthorizationRequest ($ authRequest , new Psr7Response )
135
+ $ this ->server ->completeAuthorizationRequest ($ authRequest , $ psrResponse )
133
136
), $ authRequest ->getGrantTypeId () === 'implicit ' );
134
137
}
135
138
0 commit comments