55use Illuminate \Contracts \Auth \Authenticatable ;
66use Illuminate \Contracts \Auth \StatefulGuard ;
77use Illuminate \Http \Request ;
8- use Illuminate \Http \Response ;
98use Illuminate \Support \Facades \Date ;
109use Illuminate \Support \Str ;
1110use Laravel \Passport \Bridge \User ;
1817use League \OAuth2 \Server \AuthorizationServer ;
1918use League \OAuth2 \Server \Entities \ScopeEntityInterface ;
2019use League \OAuth2 \Server \RequestTypes \AuthorizationRequestInterface ;
21- use Nyholm \ Psr7 \ Response as Psr7Response ;
20+ use Psr \ Http \ Message \ ResponseInterface ;
2221use Psr \Http \Message \ServerRequestInterface ;
22+ use Symfony \Component \HttpFoundation \Response ;
2323
2424class AuthorizationController
2525{
@@ -31,16 +31,19 @@ class AuthorizationController
3131 public function __construct (
3232 protected AuthorizationServer $ server ,
3333 protected StatefulGuard $ guard ,
34- protected AuthorizationViewResponse $ response ,
3534 protected ClientRepository $ clients
3635 ) {
3736 }
3837
3938 /**
4039 * Authorize a client to access the user's account.
4140 */
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 {
4447 $ authRequest = $ this ->withErrorHandling (
4548 fn () => $ this ->server ->validateAuthorizationRequest ($ psrRequest ),
4649 ($ psrRequest ->getQueryParams ()['response_type ' ] ?? null ) === 'token '
@@ -71,7 +74,7 @@ public function authorize(ServerRequestInterface $psrRequest, Request $request):
7174
7275 if ($ request ->get ('prompt ' ) !== 'consent ' &&
7376 ($ client ->skipsAuthorization ($ user , $ scopes ) || $ this ->hasGrantedScopes ($ user , $ client , $ scopes ))) {
74- return $ this ->approveRequest ($ authRequest );
77+ return $ this ->approveRequest ($ authRequest, $ psrResponse );
7578 }
7679
7780 if ($ request ->get ('prompt ' ) === 'none ' ) {
@@ -81,7 +84,7 @@ public function authorize(ServerRequestInterface $psrRequest, Request $request):
8184 $ request ->session ()->put ('authToken ' , $ authToken = Str::random ());
8285 $ request ->session ()->put ('authRequest ' , $ authRequest );
8386
84- return $ this -> response ->withParameters ([
87+ return $ viewResponse ->withParameters ([
8588 'client ' => $ client ,
8689 'user ' => $ user ,
8790 'scopes ' => $ scopes ,
@@ -124,12 +127,12 @@ protected function hasGrantedScopes(Authenticatable $user, Client $client, array
124127 /**
125128 * Approve the authorization request.
126129 */
127- protected function approveRequest (AuthorizationRequestInterface $ authRequest ): Response
130+ protected function approveRequest (AuthorizationRequestInterface $ authRequest, ResponseInterface $ psrResponse ): Response
128131 {
129132 $ authRequest ->setAuthorizationApproved (true );
130133
131134 return $ this ->withErrorHandling (fn () => $ this ->convertResponse (
132- $ this ->server ->completeAuthorizationRequest ($ authRequest , new Psr7Response )
135+ $ this ->server ->completeAuthorizationRequest ($ authRequest , $ psrResponse )
133136 ), $ authRequest ->getGrantTypeId () === 'implicit ' );
134137 }
135138
0 commit comments