2011-02-05 2 views
1

나는 오랫동안 개발해온 웹 앱 프로젝트를 진행하고 있습니다. 앱은 양면으로되어 있으며 대다수의 사이트는 공개적으로 액세스 할 수 있습니다. 그러나 특정 콘텐츠에 액세스하기 전에 사용자가 로그인해야하는 섹션이 있습니다.Google 맞춤 검색 및 검색어 문자열 변수 전달

사용자가 로그인 할 때 데이터베이스의 테이블에 저장된 세션 ID (GUID)를 얻습니다.이 세션 ID는 사용자 및 활동에 대한 모든 데이터 정렬을 추적합니다.

이 세션 ID 변수가 있는지 또는 쿼리 문자열에 있는지 여부를 확인하기 위해 앱의 모든 페이지가 작성되었습니다. 사용자가 보호 된 영역 중 하나에 액세스하려고 시도하면 앱은이 sessiond 변수가 쿼리 문자열에 있는지 확인합니다. 그렇지 않은 경우 로그인 화면으로 리디렉션됩니다.

사이트 이동의 흐름은 앞뒤로, 보안되지 않은 영역에 고정 영역에서 원활하게 이동 사용자 등이

그래서 우리는 구글 맞춤 검색을 테스트 실행을했고, 그것은 멋진 않습니다 공공 장소에서 우리의 모든 역동적 인 내용을 수집하는 직업. 그러나 검색 결과와 함께 세션 ID를 전달하는 방법을 파악하지 못했습니다. IF 사용자가 이미 로그인되었습니다.

검색 결과와 함께 url에 이미 존재하는 쿼리 문자열 변수를 사용할 수 있습니까?

+2

왜 쿼리 문자열에 세션 ID를 저장하고 있습니까? 오, 지난 10 년 동안 쿠키가 표준입니다. –

답변

0

내가 아는 한, 이것은 불가능합니다. Google은 맞춤 검색에서 검색 결과의 URL을 수정할 수있는 가능성을 부여하지 않습니다.

가능한 해결책은 세션 키를 모든 URL과 함께 전달하는 대신 쿠키에 저장하는 것입니다.

0

는 사용 찾는 & 느낌의 parseQueryFromUrl 기능

function parseQueryFromUrl() { 
    var queryParamName = "q"; 
    var search = window.location.search.substr(1); 
    var parts = search.split('&'); 
    for (var i = 0; i < parts.length; i++) { 
     var keyvaluepair = parts[i].split('='); 
     if (decodeURIComponent(keyvaluepair[0]) == queryParamName) { 
     return decodeURIComponent(keyvaluepair[1].replace(/\+/g, ' ')); 
     } 
    } 
    return ''; 
    } 

선택 결과 ONLY 옵션과 코드를 제공합니다. www.google.com/cse/