2017-03-13 1 views
1

Facebook에 로그인하고 비공개 이벤트를보고 있다고 가정합니다. 나는 친구에게 그 링크를 보내서 그 사람이 그 사건에 참여할 수 있기를 바란다. 그러나 그렇게하려면 내 친구가 페이스 북에 로그인하여 (인증을 받으려면) 친구가 이벤트를보고 참여할 수 있어야합니다. 즉 :인증 작업이 필요한 링크는 어떻게됩니까?

  1. 나는 로그인했는데 이벤트 페이지에 있습니다. URL을 복사합니다.
  2. 나는 그것을 친구에게 붙여 넣고 클릭합니다.
  3. 로그인 할 때까지 해당 페이지에 액세스 할 수 없습니다.
  4. 로그인하면 다시 이벤트 페이지로 리디렉션됩니다.

제 질문은 3 단계에서 4 단계로 넘어갑니다. 이벤트 페이지의 원래 링크는 어떻게 기억됩니까? 해당 이벤트 페이지 링크가 어딘가에 저장되어 로그인 후 적용됩니까? 실제 URL이 이미 로그인 페이지로 변경되었을 때 사용자가 로그인 한 후에 페이지가 리디렉션되는 것을 어떻게 알 수 있습니까?

참고 : 이것이 실제로 Facebook에서 어떻게 작동하는지는 알 수 없습니다. 이것은 단지 예일뿐입니다. 내 질문은 사람들을 Facebook 이벤트에 초대하는 방법을 중심으로 이루어지지 않습니다. 보안 URL에서

+0

사용자가 로그인했는지 여부를 확인하는 논리가 서버 측에 있으며 URL 자체에 없습니다. –

+0

page.html에 대한 요청이 서버에 도달하면 사용자가 로그인하지 않았 음을 확인하고 성공적인 로그인시 읽기 및 리디렉션되는 '& jumpto = page.html' 인수를 전달하는 로그인 페이지로 리디렉션하거나 세션의 페이지 URL 및 동일한 작업을 수행합니다. –

답변

2

리디렉션은 성공적인 로그인 후 URL "에서/입력"을 (가져 오기 PARAM from은 그가 리디렉션 도착하기 전에 접근을 시도 경로를 보유) http://somehost/login?from=enteredURL 같은 PARAMS으로 로그인하고 리디렉션 ->완료. 그것은 간단하지만 잘 작동합니다!

자바 스크립트에서 직접적인이 어떻게 생겼는지 : 예에

window.location = window.location.origin + 
        '/login?from=' + 
        encodeURI((location.pathname+location.search).substr(1)) 

이 결과 :

http://www.test.com/login?from=/user/profile/me

+0

원래 브라우저에서 링크를 볼 때'from = enteredURL'이 표시되지 않습니다. 사본과 붙여 넣기 후에 추가됩니까? – AlanH

+0

아니요, 리디렉션 URL에 삽입해야합니다. – lin

+0

URL 표시 줄에서 복사하면 어떻게됩니까? – AlanH

0

원래 위치 (이벤트 페이지 URL)이 포함되어 로그인 URL의 추가 데이터

친구가 로그인하지 않고 이벤트 페이지로 이동하면 Facebook은 브라우저를 /login?original=/event-page으로 리디렉션하는 응답을 다시 보냅니다. ? 뒤에있는 추가 데이터를 쿼리 문자열이라고합니다. 그녀가 로그인하면 Facebook은 쿼리 문자열 데이터를 수신하고 브라우저를 이벤트 페이지로 리디렉션하는 응답을 다시 보냅니다.

원래 대상은 URL에 그대로 보존됩니다.