IP.Board - единый вход в php

Я разрабатываю небольшой ручной веб-портал для сообщества и хочу, чтобы в нем была система входа с IP.Board (проще для конечного пользователя).

У меня форум и приложение на одном хостинге. Для входа в систему пользователь нажимает на кнопку и перенаправляется на эту страницу:

<?php
require_once '../www/forum/init.php';
include_once 'includes/functions.php';
error_reporting(E_ALL);
session_start();
    \IPS\Session\Front::i(); 
    print_r( \IPS\Member::loggedIn());
    if(\IPS\Member::loggedIn()->member_id) {
        $name = \IPS\Member::loggedIn()->name;
        if(checkUserExistance($name)==0){                       
            //header("Location: ../index.php"); 
            print("LOGED EXIT!!!!!!!!!!!!!!!!!!!!");
        }else{
            print("LOGED INNNN!!!!!!!!!!!!!!!!!!!!");
            $_SESSION['authenticated'] = 'yes';
            $_SESSION['user'] = $name;
            $userphoto = \IPS\Member::loggedIn()->photo;            
            $result = getUserData($_SESSION['user']);
            $_SESSION['isLeader'] = $result['isLeader'];
            $_SESSION['isAdmin'] = $result['isAdmin'];
        }           
    } else{
        print("LOGED OUT!!!!!!!!!!!!!!!!!!!!");
        $_SESSION['authenticated'] = 'no';
        if(session_destroy()){ // Destroying All Sessions   
            //header("Location: index.php");
        }
    }
    //echo "Auth by LOGIN";

?>

Если вы не вошли в сессию IP.Board (форум), она возвращается к index.php

На данный момент я разрабатываю его базовую версию, как только я получу эту работу, будут сделаны дополнительные улучшения.

Как видите, у меня есть print для отладки некоторых данных. В Edge все работает, но в Firefox или chrome я получаю строку из 32 символов, каждый раз разную, вместо получения имени пользователя. Пример того, что я получаю в Firefox и Chrome.

ef5cd2de05387b9b01048efad2173efd

Кто-нибудь знает, почему это?

ИНФОРМАЦИЯ: Я следовал: IP.Board SSO Документация

INFO2: сообщение на форуме

Я использую IPS Community Suite в качестве "Мастера".


РЕДАКТИРОВАТЬ 1: отладка \IPS\Member::loggedIn()

IPS\Member Object ( [nodeClass:protected] => IPS\awards\Cats [_followData] => [_previousPhotoType:protected] => [_group] => [ограничения: защищен] => [modPermissions:protected] => [рассчитано LanguageId:protected] => [markers] => Array () [markersResetTimes:protected] => Array () [haveAllMarkers:protected] => [defaultStreamId:protected] => [updatedCustomFields] => Array () [previousName:protected] => [_socialGroups:protected] => [sessionData:protected] => [_lang:protected] => [_url:protected] => [profileFields] => [_reputationData:protected] => [_following:protected] => массив () [reportCount:protected] => [ignorePreferences:protected] => [_ppdLimit:protected] => [_data:protected] => Массив ( [member_group_id] => 2 [mgroup_others] => [присоединен] => 1483440989 [ip_address] => 83.36.150.111 [часовой пояс] => UTC [allow_admin_mails] => 1 [pp_photo_type] => [member_posts] => 0 [pp_main_photo] => [pp_thumb_photo] => [failed_logins] => [pp_reputation_points] => 0 [подпись] => [авто_трек] => {"содержимое":0,"комментарии":0,"метод":"немедленно"}) [_new:protected] => 1 [изменено] => Массив ( [member_group_id] => 2 [mgroup_others] => [присоединился] => 1483440989 [ip_address] => 83.36.150.111 [часовой пояс] => UTC [allow_admin_mails] => 1 [pp_photo_type] => [member_posts] => 0) [skipCloneDuplication] =>)

2 ответа

Решение

Я решил использовать другую опцию для SSO в IP.Board Te другой вариант, отправляет запрос на вход в форум, и не нужно проверять сеансы. Форум API делает это.

Я понимаю, что это было более двух лет назад, но недавно я столкнулся с той же проблемой при установке localhost. В моем случае, когда я попытался создать пустой новый файл, возникла та же проблема, но в конечном итоге она решилась сама собой.

Когда я попытался фактически интегрировать его с моим сайтом, он делал это каждый раз. В моем случае оказалось, что это как-то связано с удалением плохих символов UTF-8.

Я понятия не имею, почему это имело какое-то значение, но как только я вынул код, который удалял эти символы из GET, POST и, самое главное, COOKIE, он начал работать отлично.

Для тех, кто делает это сейчас, вы действительно ничего не можете сделать, кроме как методом проб и ошибок, комментируя строки кода, пока не найдете их. IPS на самом деле совершенно бесполезен в таких вещах и оставляет у вас ощущение, что вы сами с ним (что вы фактически делаете).

Убедитесь, что URL (доменная часть) вашей системы совпадает с IPS, т. Е. Www.example.com не только example.com example.com даст этот хеш, а www.example.com - нет.

Потратил некоторое время, прежде чем увидеть это....

Редактировать: и это было совсем не так. Если я выхожу из форума и, возможно, несколько раз, это работает во всех браузерах. Я не вижу закономерности, кроме попыток несколько раз (хотя бы один раз). Извините за плохой ответ!

Эйрик

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