페이스 북 API를 사용하여 로그인하는 사이트가 있습니다. 우리는 JS SDK와 C# SDK를 사용하고 있습니다.서명 된 요청이 잘못되었습니다.
저희 사이트는 약 한 달 동안 잘 작동하고있다하지만 지난 밤에 사람들은
이 또한 베타 테스트 기간 동안 한 번 일어났다. 그들이 로그인 할 때 빈 페이지를 시작하기 그러나 우리는 그것이 생각하기 때문에 우리가했던 일부 변경 페이스 북 로그인 과정에서 쿠키를 삭제 한 후에 사라졌습니다. 하지만 지금은 다시 발생하고 내 사용자에게 쿠키를 삭제하도록 요청할 수 없습니다. (일부 브라우저는 브라우저를 다시 시작하여 도움을주는 것처럼 보이지만 여전히 매우 성가신 듯합니다.)
내 오류 로그에 다음과 같은 오류가 있습니다.
System.InvalidOperationException: Invalid signed request.
at Facebook.FacebookSignedRequest.TryParse(String secret, String signedRequestValue, Int32 maxAge, Double currentTime, Boolean throws)
at Facebook.FacebookSignedRequest.Parse(String secret, String signedRequestValue)
at Facebook.FacebookSignedRequest.GetSignedRequest(String appId, String appSecret, HttpContextBase httpContext)
at Facebook.FacebookSession.GetSession(String appId, String appSecret, HttpContextBase httpContext, FacebookSignedRequest signedRequest)
at Facebook.Web.FacebookWebContext.get_Session()
at Facebook.Web.FacebookWebContext.IsAuthenticated()
at Facebook.Web.FacebookWebContext.IsAuthorized(String[] permissions)
at Facebook.Web.Mvc.FacebookAuthorizeAttribute.OnAuthorization(AuthorizationContext filterContext, IFacebookApplication facebookApplication)
at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor)
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
at System.Web.Mvc.Controller.ExecuteCore()
at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
at System.Web.Mvc.MvcHandler.<>c__DisplayClass6.<>c__DisplayClassb.<BeginProcessRequest>b__5()
at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.<MakeVoidDelegate>b__0()
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
이상한 것은 내가 한 달 정도 및 페이지 일상에서 로그 아웃했습니다 동시에 여러 사용자를 위해 밤 동안 일어난 것입니다 오늘 난 그냥 얻을 : 다음과 같다 빈 페이지이며이 오류가 로그에 표시됩니다.
분명히 쿠키와 관련이 있거나 세션을 잃는 것처럼 보입니다. 페이스 북에서 로그 아웃하지 않은 사용자, 로그인 상태를 유지 한 다음 나중에 다시 돌아와서 세션을 잃어 버린 사용자에게 발생하는 것으로 보입니다. 다시 로그인하면 다시 작동하지 않습니다. 나는 그것을 100 % 확인할 수는 없지만 실제 사이트를 브라우저에서 열어 놓고 컴퓨터를 잠자기 모드로 전환 한 다음 그 다음날 사이트 탐색을 시작하는 많은 사람들에게 오류가 발생하는 것처럼 보입니다. 다시 빈 페이지가 생겨서 로그인 페이지로 이동하여 로그인하려고 시도하지만 로그인 한 후에 빈 페이지를 다시 얻습니다.
그렇다면 오류의 원인은 무엇이라고 말할 수 있지만, 왜 모든 사람이 같은 날에 누군가에게 일어나지 않는가? 그건 나에게 의미가 없다.
가입은 JS는 다음과 같습니다
<script>
window.fbAsyncInit = function() {
FB.init({
appId: 'XXXXXXXXXXXX',
channelUrl: 'http://www.xxxxxx.com/channel.html',
status: true, // check login status
cookie: true, // enable cookies to allow the server to access the session
oauth: true, // enable OAuth 2.0
xfbml: true // parse XFBML
});
// Run js that is dependent on the Facebook session
initFacebook();
FB.Canvas.setAutoResize();
};
// Load the SDK Asynchronously
(function (d) {
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) { return; }
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
} (document));
</script>
어떤 도움도 대단히 감사하겠습니다!
당신이 공식 C#을 SDK를 사용하고 (이는 [사용되지 않는 (http://developers.facebook.com/blog/post/624/)) 또는 [codeplex에서 호스팅되는 opensource C# SDK] (http://facebooksdk.codeplex.com/)? –
Codeplex에서 호스팅되는 것을 사용하고 있습니다 (NuGet을 통해). –