Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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
如何在java和scribe库中使用facebook connect注销用户?_Java_Facebook_Authentication_Openid - Fatal编程技术网

如何在java和scribe库中使用facebook connect注销用户?

如何在java和scribe库中使用facebook connect注销用户?,java,facebook,authentication,openid,Java,Facebook,Authentication,Openid,我正在使用SCRIBE库在我的应用程序中启用Facebook connect登录。我的问题是,在每次登录并获得access_令牌后,我每次单击login按钮都是在未经授权的情况下登录的,因为我已登录Facebook,access_令牌仍然处于活动状态。有没有办法强迫facebook注销,或者每次都要求我提供新的访问令牌,使用cookie或使用connect.facebook.net/en_US/all.js还是在某个时候将其重定向到。我知道关于这个话题有很多问题,但所有的问题和建议的解决方案都让

我正在使用SCRIBE库在我的应用程序中启用Facebook connect登录。我的问题是,在每次登录并获得access_令牌后,我每次单击login按钮都是在未经授权的情况下登录的,因为我已登录Facebook,access_令牌仍然处于活动状态。有没有办法强迫facebook注销,或者每次都要求我提供新的访问令牌,使用cookie或使用connect.facebook.net/en_US/all.js还是在某个时候将其重定向到。我知道关于这个话题有很多问题,但所有的问题和建议的解决方案都让我困惑。下面是托管bean中处理Facebook响应的my post构造方法

@施工后 公共无效初始{ FacesContext context=FacesContext.getCurrentInstance; HttpServletRequest req=HttpServletRequest上下文 .getExternalContext.getRequest

    responseCode = req.getParameter("code");
    System.out.println("The code is:   "+responseCode);


    //facebook data
    final String PROTECTED_RESOURCE_URL = "https://graph.facebook.com/me";
    final Token EMPTY_TOKEN = null;
    String apiKey = "MY_API_KEY";
    String apiSecret = "MY_API_SECRET";
    String callbackUrl="the-redirect_page_in_my_application";

    OAuthService service = new ServiceBuilder().provider(FacebookApi.class)
            .apiKey(apiKey).apiSecret(apiSecret)
            //.scope(SCOPE)
            .callback(callbackUrl).build();

    //get authorization Url
    String authorizationUrl = service.getAuthorizationUrl(EMPTY_TOKEN);

    Verifier v=new Verifier(responseCode);
    Token accessToken = service.getAccessToken(EMPTY_TOKEN, v);


    // Now let's go and ask for a protected resource!

    OAuthRequest request = new OAuthRequest(Verb.GET,
            PROTECTED_RESOURCE_URL);
    service.signRequest(accessToken, request);
    Response response = request.send();


    Gson gson = new GsonBuilder().create();
    FacebookUser faceUser = gson.fromJson(response.getBody(), FacebookUser.class);

    setUserName(faceUser.getName());
    setUserFacebook(faceUser.getUsername());
    setGender(faceUser.getGender());

    FacesContext.getCurrentInstance().responseComplete();
    }

您有多种选择:

这可能会产生不必要的副作用,即记录 用户退出Facebook.com也是因为您的应用程序可能已被删除 首先负责他们登录it 这里的缺点是,当用户下次登录到您的应用程序时,必须再次进行身份验证,并再次看到登录对话框。 存储一个会话变量,该变量告诉您有人已登录。在他们注销时删除该变量,并存储另一个表示他们已手动注销的会话变量。然后,如果第二个变量存在,则在他们单击应用程序中的“登录”按钮之前,不要再次自动重新验证他们。