2011-04-21 2 views
4

페이스 북에 대한 로그인 링크를 작성하려고하는데 일부 경우에만 오류가 발생합니다. redirect_uri 토큰에 쿼리 문자열 매개 변수를 지정하여 로그인 한 후 내 사이트의 특정 영역으로 다시 리디렉션 할 수 있습니다. 작동하는 것과 작동하지 않는 것은 다음과 같습니다.facebook 로그인에 대한 redirect_uri 인코딩 방법

&redirect_uri=http://mydomain.com/login?returnUrl=returnUrl은 - &redirect_uri=http://mydomain.com/login?returnurl=/return/url 맞아요, 작업 &redirect_uri=http%3a%2f%2fmyagentcheckin.com%2flogin%3freturnUrl%3d%2freturn%2furl 맞아요, 작업

쿼리 문자열의 /가 실패를 일으키는 것으로 보인다에게 작동합니다. 페이스 북은 시도 할 때 오류를 반환합니다. 누구든지이 문제를 해결할 방법을 알고 있습니까?

답변

1

나는 특히 위의 여러 리디렉션과 비슷한 것을 경험했습니다.

내 솔루션은 returnUrl을 사용자의 세션 (또는 쿠키)에 넣는 것이므로 두 번 인코딩으로 해결할 필요가 없습니다. redirect_url의 경우 쿼리 문자열을 생략하면됩니다.

+0

가 그 해답이 될 것입니다 & 상태 =/요청/페이지 //www.yoursite.com/oauth/handshake =) .... – Micah

0

함께 넣은 this API을 사용해보세요. 이것으로 번거롭지 않게됩니다.

URL 인코딩이 필요하지 않습니다.

샘플 인증

Imports Branches.FBAPI 
... 
Dim SI As New SessionInfo("[application_id]","applicaiton_secret") 
SI.AuthenticateUser("http://[my url]", New SessionInfo.PermissionsEnum(){SessionInfo.PermissionsEnum.email, SessionInfo.PermissionsEnum.read_stream})) 

하면 해당 페이지에서 위에 제공된 URL의 응답을 읽어보십시오.

Dim FSR = FS.ReadFacebooAuthResponse 
관련 문제