Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确实现GWT facebook应用程序的facebook登录?_Facebook_Gwt_Facebook Oauth - Fatal编程技术网

如何正确实现GWT facebook应用程序的facebook登录?

如何正确实现GWT facebook应用程序的facebook登录?,facebook,gwt,facebook-oauth,Facebook,Gwt,Facebook Oauth,我正在Facebook上创建一个应用程序,并试图找出验证和登录该应用程序的正确方法。我不希望当他们从Facebook注销并且目前正在使用OAuth 2.0时,该应用程序仍然可以通过访问apps.Facebook.com/myappname完全正常运行,即使登录Facebook的顶部栏在那里 这是我的onModuleLoad: public void onModuleLoad() { AuthRequest req = new AuthRequest(FACEBOOK_AUTH_URL, FA

我正在Facebook上创建一个应用程序,并试图找出验证和登录该应用程序的正确方法。我不希望当他们从Facebook注销并且目前正在使用OAuth 2.0时,该应用程序仍然可以通过访问apps.Facebook.com/myappname完全正常运行,即使登录Facebook的顶部栏在那里

这是我的
onModuleLoad

public void onModuleLoad() {
  AuthRequest req = new AuthRequest(FACEBOOK_AUTH_URL, FACEBOOK_CLIENT_ID);
  AUTH.login(req, new Callback<String, Throwable>() {
    @Override
    public void onSuccess(String token) {
      f_token = token;
      startAppAfterLogin();
    }

    @Override public void onFailure(Throwable caught) {
      Window.Location.assign("https://www.facebook.com/login.php");
    }
  });
}
模块加载()上的公共void{
AuthRequest req=新的AuthRequest(FACEBOOK\u AUTH\u URL、FACEBOOK\u客户端\u ID);
AUTH.login(req,new Callback(){
@凌驾
成功时公共无效(字符串标记){
f_令牌=令牌;
startAppAfterLogin();
}
@失效时覆盖公共无效(可丢弃){
Window.Location.assign(“https://www.facebook.com/login.php");
}
});
}

显然,注销后仍会调用
startAppAfterLogin()
,有人知道该怎么办吗?

您需要在
AuthRequest
上指定一些auth范围,否则Facebook将不知道您需要什么信息。请参阅此处的示例:另外,如果您请求多个作用域,则需要将作用域分隔符设置为“”,因为Facebook希望作用域之间用逗号分隔,而不是空格(如规范中所示)。这并不能解决任何问题。问题是,我希望只有当他们像大多数应用一样登录Facebook时,才能访问它。我不确定是否有任何方法可以查询用户登录状态的Facebook API。登录状态也不是OAuth 2.0标准的一部分,它可以在用户离线或不在计算机上时工作。添加一些Javascript检查他们的登录状态是否有意义?