2017-01-02 4 views
1

나는 커뮤니티를위한 작은 웹 포털을 개발 중이며 IP.Board (최종 사용자가 더 쉽다)로 로그인 시스템을 갖고 싶습니다.IP.Board - 싱글 사인온 (php)

나는 포럼과 응용 프로그램을 동일한 호스팅에 있습니다. loggin에 대한 는, 사용자가 버튼을 클릭하고 해당 페이지로 리디렉션됩니다 :

<?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이 있습니다. 에지 모든 작품에 ,하지만 파이어 폭스 또는 크롬에 내가 대신 사용자 이름을 얻는, 32 자, 때마다 개의 다른 하나의 문자열을 얻는다. 내가 들어오는 것의 예 파이어 폭크롬.

어느 한이 이유를 알고 있습니까

을 ef5cd2de05387b9b01048efad2173efd?

정보 : 나는 다음 : IP.Board SSO Documentation

정보 2 : 나는 "마스터"로 IPS 커뮤니티 스위트 룸을 사용하고Forum post

.


편집 1 : 디버그 \IPS\Member::loggedIn()

IPS \ 회원 개체 ([nodeClass : 보호] => IPS 상 \ \ 고양이 [_followData] => [_previousPhotoType : 보호] = > [marker] => Array() [markersResetTimes : protected] => Array() [hasAllMarkers] [>] [태그 추가] : protected] => [defaultStreamId : protected [sessionData : protected] => [_lang : protected] => [_url : protected] => [profileCields] [프로필 이름] [보호 된] [ignorePreferences : protected] => [_ppdLimit : protected] => [_data : protected] => [_reputationData : protected] => [_reputationData : protected] => [_ 다음 : > 배열 ([member_group_id] => 2 [mgroup_others] => [joined] => 1483440989 [ip_address] => 83.36.150.111 [timezone] => UTC [allow_admin_mails] => 1 [pp_photo_type] => [member_posts] => 0 [pp_main_photo] => [pp_thumb_photo] => [failed_logins] => [pp_reputation_points] => 0 [서명 1 [changed] => Array ([member_group_id]] => [auto_track] => [auto_track] => { "content": 0, "comments": 0, "method": "immediate"}) => 1 [pp_photo_type] => [member_posts] => 0 [ skipCloneDuplication] =>)

+0

답변을 드릴 수 없습니다. '\ IPS \ Member :: loggedIn()'의 근원과 기본 메소드를 보여줘야합니다. – Xatenev

+0

@Xatenev는 포럼 코드의 일부로, 어디 있는지 모르겠습니다. IP.Board의 SSO를 사용하려면'init.php' 파일을 가져와야합니다. https://invisionpower.com/4docs/advanced-usage/development/single-sign-on-sso-r98/ –

답변

0

나는, IP.Board 테 다른 옵션에 SSO에 대한 다른 옵션을 사용하기로 결정했다 포럼에 로그인 요청을 전송하고 세션을 확인 할 필요가 없습니다. 포럼 API는 그것을 수행합니다.

-1

시스템에 대한 URL (도메인 부분)이 동일한 지 확인하십시오 www. example.com example.com뿐만 아니라 example.com은 해시를 제공하지만 www.example.com은 해시를 제공하지 않습니다.

는 ....이보기 전에 약간의 시간 소비

편집 : 그게 전혀 아니었다. 포럼에서 로그 아웃 한 다음 여러 번 사용하면 모든 브라우저에서 작동합니다. 나는 여러 번 시도하는 것 (한 번 이상)을 제외하고는 패턴을 보지 못합니다. 가난한 답변 죄송합니다!

에이 릭