Mmanos\Social\SocialController::getLogin PHP Method

getLogin() public method

Login action.
public getLogin ( string $provider = null ) : mixed
$provider string
return mixed
    public function getLogin($provider = null)
    {
        if (empty($provider)) {
            App::abort(404);
        }
        $referer = Request::header('referer', '/');
        $referer_parts = parse_url($referer);
        $onerror = array_get($referer_parts, 'path');
        if (array_get($referer_parts, 'query')) {
            $onerror .= '?' . array_get($referer_parts, 'query');
        }
        if (!Input::get('code') && !Input::get('oauth_token')) {
            Session::put('mmanos.social.onsuccess', Input::get('onsuccess', '/'));
            Session::put('mmanos.social.onerror', Input::get('onerror', $onerror));
        }
        if (Auth::check()) {
            return Redirect::to(Session::pull('mmanos.social.onsuccess', '/'));
        }
        Session::forget('mmanos.social.pending');
        Session::forget('mmanos.social.failed_fields');
        if (Input::get('denied') || Input::get('error')) {
            return Redirect::to(Session::pull('mmanos.social.onerror', '/'))->with(Config::get('laravel-social::error_flash_var'), 'There was a problem logging in to your account (1).');
        }
        $provider = ucfirst($provider);
        try {
            $service = Social::service($provider);
            if (Config::get('laravel-social::providers.' . strtolower($provider) . '.offline')) {
                $service->setAccessType('offline');
            }
        } catch (Exception $e) {
            App::abort(404);
        }
        if (2 === Social::oauthSpec($provider)) {
            return $this->oauth2Login($provider, $service);
        } else {
            return $this->oauth1Login($provider, $service);
        }
    }