2013-10-11 3 views
0

이 질문은 다소 오래되었지만 그 대답이 많은 사람들을 도울 것이라고 확신합니다. 나는 어디서나 필요한 지침을 찾을 수 없다.ASP.net MVC oAuth 및 Facebook javascript SDK

Visual Studio 2012의 기본 템플릿 템플릿을 사용하여 ASP.net MVC 4 웹 응용 프로그램을 만들었습니다. 사용자가 즉시 Facebook 자격 증명으로 가입하고 인증 할 수있는 웹 사이트를 제공합니다. 오아시스. 여태까지는 그런대로 잘됐다.

내 응용 프로그램은 Facebook Javascript SDK와 OpenGraph를 사용하여 사용자를 대신하여 작업을 수행합니다. 그것도 잘 작동합니다. 여기

내가에 문제가있는 시나리오입니다 : -

  1. 사용자 (요) 기호 업
  2. 요한은 자신의 페이스 북 로그인을 사용하여 내 응용 프로그램에 로그인 자신의 FB 프로필을 사용. 그는 Facebook에 이미 로그인 했으므로 로그인 자격 증명을 다시 입력 할 필요가 없었습니다.
  3. John은 브라우저를 열어두고 응용 프로그램에서 로그 아웃하지 않습니다.
  4. John의 아내 (Jane)가 새 탭을 열고 Facebook 사이트로 이동하여 John을 Facebook에서 로그 아웃하고 자신의 Facebook 자격 증명을 사용하여 로그인합니다. . 그녀는 또한 그녀가 완료되면 브라우저를 열어 둡니다.
  5. John은 내 응용 프로그램을 반환하고 계속 사용합니다. 그의 세션이 만료되지 않았다고 가정하면 John은 여전히 ​​내 애플리케이션에서 John으로 인증되지만 애플리케이션이 자바 스크립트 SDK를 사용하여 모든 호출을하거나 작업을 수행하는 경우 페이스 북 사용자 인 Jane이 로그인 한 것입니다. 그들은 둘 다 내 애플 리케이션을 승인했기 때문에 둘 다 내 애플 리케이션에 계정을 가지고 있다고 가정 할 때, 이것은 조용히 일어나고 John의 액션은 Jane의 Facebook 계정에 게시된다.

FB.api를 사용하지만 사용자 변경을 감지하지 않는 모든 페이지에서 FB.getLoginStatus를 호출합니다. response.authResponse.accessToken을 저장하고 비교해 보았습니다. 그러나 사용자가 변경하면이 값은 변경되지 않습니다.

내 애플리케이션에서 변경된 FB 사용자를 감지하여 로그인 페이지로 리디렉션하도록 Facebook 사용자의 변경을 처리하는 방법에 대한 지침을 제공 할 수 있습니까?

감사합니다.

답변

0

로그인시 FB 사용자 ID를 저장하고이를 모든 페이지로드시 FB.getLoginStatus의 응답 객체에있는 사용자 ID와 비교하여 처리합니다. 일치하지 않으면 강제로 로그 아웃합니다.