如何解决验证访问令牌时出错:该会话无效,因为用户已注销
|| 我的代码: var fbWebContext = FacebookWebContext.Current;
if (fbWebContext.IsAuthorized())
{
var fb = new FacebookWebClient(fbWebContext);
dynamic result = fb.Get(\"/me\");
name.Text = result.name;
}
dynamic result = fb.Get(\"/me\");
抛出:
(OAuthException)验证访问令牌时出错:会话无效,因为用户已注销。
我应该如何更改代码以防止这种情况?
解决方法
您可以请求\“ offline_access \”扩展权限。这将阻止此消息,并且用户不必每次都登录。
, 您确实无法阻止它,您只需要捕获异常并对其进行处理。好吧,您可以通过在FB Javascript SDK中进行一些等效调用来检测到错误的会话(过期,注销,用户更改密码等),并在客户端上重新登录,以防止出现这种情况。客户端,然后再调用服务器端代码。
如果查看Facebook C#SDK源代码,则可以看到IsAuthorized()= IsAuthenticated()。 IsAuthenticated所做的只是检查您是否有一个会话,以及该会话的到期时间是否还没有过去。会话可能已被用户注销(服务器未知)而无效。
您还可以在这里找到其他Facebook OAuth例外。最好将上述代码包装在try / catch中,并通过再次提示用户登录并与他们进行新的会话来处理异常。
, 那么CanvasAnthorizer对象呢?这个对象是否可以确保用户已登录并具有正确的权限?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。