public function social_login($params)
{
if (is_string($params)) {
$params = parse_params($params);
}
$return_after_login = false;
if (isset($params['redirect'])) {
$return_after_login = $params['redirect'];
$this->session_set('user_after_login', $return_after_login);
} elseif (isset($_SERVER['HTTP_REFERER']) and stristr($_SERVER['HTTP_REFERER'], $this->app->url_manager->site())) {
$return_after_login = $_SERVER['HTTP_REFERER'];
$this->session_set('user_after_login', $return_after_login);
}
$provider = false;
if (isset($_REQUEST['provider'])) {
$provider = $_REQUEST['provider'];
$provider = trim(strip_tags($provider));
}
if ($provider != false and isset($params) and !empty($params)) {
$this->socialite_config($provider);
switch ($provider) {
case 'github':
return $login = $this->socialite->with($provider)->scopes(['user:email'])->redirect();
}
return $login = $this->socialite->with($provider)->redirect();
}
}