Зарегистрироваться с помощью не работающего 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

Другие вопросы по тегам