Зарегистрироваться с помощью не работающего linkedin (используя hybridauth)
В настоящее время я использую hybridauth для интеграции социальной логин на веб-сайте. URL сайтов находится в find.pk. Я добавил на сайт Facebook, Twitter, Google+ и Microsoft, и они отлично работают. Но один из них просто перенаправляет меня на гибридную корневую страницу после ввода имени пользователя и пароля. Значит здесь: find.pk/public/social/hybridauth
это также определяется как базовый URL-адрес файла конфигурации.
ROOT / public / social / hybridauth / ( The path of the hybridauth lib )
а также
ROOT / pubilc / social / all.php?login={whateverprovider} ( To authenticate using any provided e.g facebook, twitter etc. )
Вы можете увидеть живую демонстрацию проблемы входа в систему:
http://find.pk/public/social/all.php?login=linkedin
код all.php:
<?php
session_start();
if (isset( $_GET['login'] ))
{
switch ($_GET['login']) {
case 'facebook':
// Now Login with facebook
$config = "hybridauth/config.php";
require_once( "hybridauth/Hybrid/Auth.php" );
$hybridauth = new Hybrid_Auth( $config );
$adapter = $hybridauth->authenticate( "Facebook" );
$user_profile = $adapter->getUserProfile();
$user_profile = json_decode(json_encode( $user_profile ));
$_SESSION['social_profile'] = $user_profile;
header("Location: http://find.pk/user/social_got");
exit;
break;
case 'twitter':
$config = "hybridauth/config.php";
require_once( "hybridauth/Hybrid/Auth.php" );
$hybridauth = new Hybrid_Auth( $config );
$adapter = $hybridauth->authenticate( "Twitter" );
$user_profile = $adapter->getUserProfile();
$user_profile = json_decode(json_encode( $user_profile ));
$_SESSION['social_profile'] = $user_profile;
header("Location: http://find.pk/user/social_got");
exit;
break;
case 'linkedin':
$config = "hybridauth/config.php";
require_once( "hybridauth/Hybrid/Auth.php" );
$hybridauth = new Hybrid_Auth( $config );
$adapter = $hybridauth->authenticate( "LinkedIn" );
$user_profile = $adapter->getUserProfile();
$user_profile = json_decode(json_encode( $user_profile ));
$_SESSION['social_profile'] = $user_profile;
header("Location: http://find.pk/user/social_got");
exit;
break;
case 'google':
$config = "hybridauth/config.php";
require_once( "hybridauth/Hybrid/Auth.php" );
$hybridauth = new Hybrid_Auth( $config );
$adapter = $hybridauth->authenticate( "Google" );
$user_profile = $adapter->getUserProfile();
$user_profile = json_decode(json_encode( $user_profile ));
$_SESSION['social_profile'] = $user_profile;
header("Location: http://find.pk/user/social_got");
exit;
break;
case 'live':
$config = "hybridauth/config.php";
require_once( "hybridauth/Hybrid/Auth.php" );
$hybridauth = new Hybrid_Auth( $config );
$adapter = $hybridauth->authenticate( "Live" );
$user_profile = $adapter->getUserProfile();
$user_profile = json_decode(json_encode( $user_profile ));
$_SESSION['social_profile'] = $user_profile;
header("Location: http://find.pk/user/social_got");
exit;
break;
default:
# code...
break;
}
exit;
}
1 ответ
Простое решение
Перейдите к этому файлу: hybridauth/Hybrid/Thirdparty/LinkedIn/LinkedIn.php (может иметь другой путь в вашем случае)
Перейти к строке 126, где _URL_REQUEST
определено.
Измените эту строку на эту:
const _URL_REQUEST = 'https://api.linkedin.com/uas/oauth/requestToken?scope=r_basicprofile+r_emailaddress+w_share';
Подробности:
Мы внесли изменения в программы разработчиков. поэтому они изменили параметры для запросов.
Подробности можно прочитать здесь.
Основная проблема - параметры, которые мы отправляем с запросом.
Наиболее выдающимся является rw_nus
который сейчас устарел. вместо этого используйте w_share