in AuthServiceProvider. Just replace with your own namespace. Passport::routes(); \Route::get('oauth/authorize', [ 'uses' => '\Portal\Http\Controllers\Auth\OAuth\AuthorizationController@authorize', ])->middleware(['web', 'auth']); <?php /** * this is a copy of the Passport AuthorizationController. Unfortunately we need to have our own version * so we can skip the approval screen. */ namespace Portal\Http\Controllers\Auth\OAuth; use Illuminate\Http\Request; use Laravel\Passport\Passport; use Laravel\Passport\Bridge\User; use Laravel\Passport\TokenRepository; use Laravel\Passport\ClientRepository; use Illuminate\Database\Eloquent\Model; use Illuminate\Contracts\Config\Repository; use Psr\Http\Message\ServerRequestInterface; use Zend\Diactoros\Response as Psr7Response; use League\OAuth2\Server\AuthorizationServer; use Illuminate\Contracts\Routing\ResponseFactory; use League\OAuth2\Server\Exception\OAuthServerException; use Laravel\Passport\Http\Controllers\HandlesOAuthErrors; use League\OAuth2\Server\RequestTypes\AuthorizationRequest; use Laravel\Passport\Http\Controllers\RetrievesAuthRequestFromSession; class AuthorizationController { use HandlesOAuthErrors, RetrievesAuthRequestFromSession; /** * The authorization server. * * @var AuthorizationServer */ protected $server; /** * The response factory implementation. * * @var ResponseFactory */ protected $response; /** * Create a new controller instance. * * @param AuthorizationServer $server * @param ResponseFactory $response */ public function __construct(AuthorizationServer $server, ResponseFactory $response) { $this->server = $server; $this->response = $response; } /** * Authorize a client to access the user's account. * * @param ServerRequestInterface $psrRequest * @param Request $request * @param ClientRepository $clients * @return Response */ public function authorize(ServerRequestInterface $psrRequest, Request $request, ClientRepository $clients, TokenRepository $tokens) { return $this->withErrorHandling(function () use ($psrRequest, $request, $clients, $tokens) { $authRequest = $this->server->validateAuthorizationRequest($psrRequest); $scopes = $this->parseScopes($authRequest); $token = $tokens->findValidToken( $user = $request->user(), $client = $clients->find($authRequest->getClient()->getIdentifier()) ); if ($token && $token->scopes === collect($scopes)->pluck('id')->all()) { return $this->approveRequest($authRequest, $user); } $request->session()->put('authRequest', $authRequest); $authRequest = $this->getAuthRequestFromSession($request); return $this->server->completeAuthorizationRequest( $authRequest, new Psr7Response ); }); } /** * Transform the authorization requests's scopes into Scope instances. * * @param AuthRequest $request * @return array */ protected function parseScopes($authRequest) { return Passport::scopesFor( collect($authRequest->getScopes())->map(function ($scope) { return $scope->getIdentifier(); })->all() ); } /** * Approve the authorization request. * * @param AuthorizationRequest $authRequest * @param Model $user * @return \Psr\Http\Message\ResponseInterface */ private function approveRequest($authRequest, $user) { $authRequest->setUser(new User($user->getKey())); $authRequest->setAuthorizationApproved(true); return $this->server->completeAuthorizationRequest( $authRequest, new Psr7Response ); } }