Java 使用Facebook4j API登录Facebook?

Java 使用Facebook4j API登录Facebook?,java,facebook,Java,Facebook,我使用Facebook4j通过Java web应用程序与facebook进行交互。我想知道我必须将哪些数据保存到数据库中,以便下次用户访问我的应用程序时无需进一步查看 String code = request.getParameter(OAUTH_CODE); if (code != null && code.length() > 0) { LOGGER.debug("We have a oauth code: {

我使用Facebook4j通过Java web应用程序与facebook进行交互。我想知道我必须将哪些数据保存到数据库中,以便下次用户访问我的应用程序时无需进一步查看

        String code = request.getParameter(OAUTH_CODE);
        if (code != null && code.length() > 0) {

            LOGGER.debug("We have a oauth code: {}.", code);
            LOGGER.debug("Attempting to verify the code...");

            Verifier verifier = new Verifier(code);

            LOGGER.debug("Trading the Request Token for an Access Token...");

            Token accessToken = service.getAccessToken(EMPTY_TOKEN, verifier);

            Token accessToken1 = new Token(token, apiSecret);

现在将这些accessToken1保存到数据库中,但每次我从不同的帐户登录时,都会得到相同的AccessToken..我做错了什么?或者,我必须将哪些信息保存到数据库中,您的OAUTH_代码来自哪里?如果每次都相同,那么您的令牌也将相同。变量标记呢?这是你的FB应用程序ID吗?所以AccessToken1是应用程序令牌,accessToken是用户令牌?

OAUTH背后的理念是,用户授权应用程序在短时间内以他/她的名义进行操作。经过一段时间后,用户必须再次授权该应用程序。因此,你无法保存任何有用的东西,你的应用程序将始终需要用户交互

但是对于Twitter,我们可以保存AccessToken,请参见**在为用户获取AccessToken后,不再需要RequestToken。您可以通过序列化对象,或通过从AccessTokengetToken和AccessTokenGetTokenCret获取令牌和机密,将AccessToken持久化到任何类型的持久化存储,如RDBMS或文件系统。**[twitter访问令牌似乎不会过期,但facebook的令牌会在2小时后过期:嗯,很奇怪,因此无法从令牌进行操作,甚至用户授权了我的web应用程序。每次用户登录Stackoverflow时,Stackoverflow在facebook登录时如何工作?我认为没有ts,因为他们有令牌,所以他们再次使用相同的令牌。请ll如果我错了?我会质疑你是否每次都得到了不同的FB用户。代码每次都不同,因此验证程序也不同,因此令牌也不同,但是你可以为同一个FB帐户拥有多个令牌。我会仔细观察你是如何验证你在FB s上登录到不同的FB用户帐户的ide。我们将ID保存在应用程序中,它的持续时间似乎超过2个小时。我想我们有一个已经持续了6个月。您是否验证您是以不同的用户身份登录的?可能使用不同的计算机和浏览器进行测试?