모든 페이지의 내비게이션 메뉴에 "Facebook에서 로그인"버튼이있는 내 사이트에 facebook authentication을 사용하고 있습니다. 따라서 사용자는 페이스 북을 통해 로그인 할 수 있어야하며 한 번의 클릭으로 이전 페이지로 돌아갈 수 있어야합니다. 페이스 북은 내 사이트에서/login/facebook으로 설정된 return_uri 매개 변수를 제공하며 페이스 북 API에 대한 모든 인증을 처리한다. 그러나 일단이 논리로 끝내고 사용자를 로그인하면 원래 페이지가 어떤 것인지 알 필요가있어서 원래 페이지로 리디렉션 할 수 있습니다. 나는 나의 return_uri 매개 변수를 전달하려고했습니다Facebook 인증, return_uri 및 현지 uri
: 나는 다시 응답을받을 때
http://example.com/login/facebook?local_redir=http://example.com/users/original/page
(모든 물음표와 함께 후에 제대로 물론 인코딩 된) 그래서 원래 페이지가 무엇인지 알고있다. 액세스 토큰을 가져 오려고하면이 작업이 실패합니다. 나는 기본적으로 페이 스북에 "통과"매개 변수를 갖는 방법이 필요하지만, 여기에서는 짧게 설명하고 있습니다.
왜 액세스 토큰을 가져 오려고 할 때 실패합니까? auth 대화 상자 호출과 액세스 토큰에 대한'code' 호출과 동일한 redirect_uri를 사용하고 있습니까? – Igy
@Igy, 네, "인증 코드를 검증하는 동안 오류가 발생했습니다. 귀하의 redirect_uri가 OAuth 대화 요청에서 사용했던 것과 일치하는지 확인하십시오"라고 불평하고 있습니다. 그러나 나는 호출간에 URL이 동일하다는 것을 확인했습니다. local_redir을 매개 변수로 추가하지 않으면 작동합니다. – arknotts
로그인 물건 등을 처리하기 위해 PHP SDK를 사용하고 있다고 가정합니다. 그렇다면 세션도 이미 마련되어 있습니다. 따라서 세션의 '원본 페이지'에 URL을 저장하여 사이트의 링크/버튼 'Facebook으로 로그인'을 클릭 한 다음 FB 로그인이 세션에서 읽은 값을 사용하여 끝나면 해당 페이지로 리디렉션 하시겠습니까? 페이스 북이 반대하는 것으로 보이는 리다이렉트 URI에서 갑자기 발생하는 추가 매개 변수로 인한 문제를 피할 수 있습니다. – CBroe