public function authorizeForm()
{
$user = Auth::user();
$authParams = Authorizer::getAuthCodeRequestParams();
$formParams = array_except($authParams, 'client');
$formParams['client_id'] = $authParams['client']->getId();
$formParams['scope'] = implode(config('oauth2.scope_delimiter'), array_map(function ($scope) {
return $scope->getId();
}, $authParams['scopes']));
$client_id = $formParams['client_id'];
$sessions = DB::table('oauth_sessions')->where('client_id', '=', $client_id)->where('owner_id', $user->user_id)->join('oauth_clients', 'oauth_clients.id', '=', 'oauth_sessions.client_id')->groupBy('oauth_sessions.client_id')->get();
if ($sessions) {
$formParams['user_id'] = $user->user_id;
return redirect(Authorizer::issueAuthCode('user', $user->user_id, $formParams));
} else {
return view('oauth.authorization-form', ['params' => $formParams, 'client' => $authParams['client']]);
}
}