Java 如何使用Spring Social从Facebook注销

Java 如何使用Spring Social从Facebook注销,java,angularjs,facebook,spring-social,spring-social-facebook,Java,Angularjs,Facebook,Spring Social,Spring Social Facebook,我在SpringSocial中尝试使用Facebook API实现注销按钮时遇到问题 要注销,我是否必须像在下面的登录按钮中那样调用URL 我能够实现调用URL“/connect/facebook”的登录,如下所示: <form action="/connect/facebook" method="POST"> <input type="hidden" name="scope" value="read_stream,email" /> <md-but

我在SpringSocial中尝试使用Facebook API实现注销按钮时遇到问题

要注销,我是否必须像在下面的登录按钮中那样调用URL

我能够实现调用URL“/connect/facebook”的登录,如下所示:

<form action="/connect/facebook" method="POST">
    <input type="hidden" name="scope" value="read_stream,email" />
    <md-button type="submit">
        <i class="fa fa-facebook-square"></i> Login
    </md-button>
</form>
我正在使用AngularJS获取用户,如果用户已连接,下面是我的服务负责人:

function login() {
    var request = $http({
        method: "GET",
        url: "/home/user"
    });

    return (request.then(handleSuccess, handleError));
}
以及后端的rest控制器,以查找或注册用户:

@RestController
public class LoginController {

    @Autowired
    private Facebook facebook;

    @Autowired
    private UsrService usrService;

    @RequestMapping(value = "/home/user", method = RequestMethod.GET)
    public Usr findUser() {
        Usr user;

        if (!facebook.isAuthorized()) {
            return null;
        }

        String name = facebook.userOperations().getUserProfile().getName();
        String email = facebook.userOperations().getUserProfile().getEmail();
        byte[] avatar = facebook.userOperations().getUserProfileImage(ImageType.SQUARE);

        user = usrService.find(email);

        // saves the new user
        if (user == null) {
            user = new Usr(email, name, avatar, 0);
            user.setName(name);
            user.setAvatar(avatar);
            user.setLikes(0);
            usrService.save(user);
        }

        return user;
    }
}
我找不到任何类似于我实现登录的方法的解决方案,我还检查了github上的spring社交示例,但它们的实现与我的完全不同


谢谢。

对于那些可能有同样问题的人,我做了:

我又看了一眼spring社交文档,发现我只需要在“/connect/facebook”上发出一个删除请求


这可以在

部分找到,如果您遇到诸如“没有找到HTTP请求/connect/facebook的映射”之类的问题,您可以尝试将以下ConnectController放入dispatcher-servlet.xml中:这只是将应用程序与facebook断开连接,还是将用户完全从facebook注销?i、 e.如果用户访问www.facebook.com,是否会要求用户再次登录?我正在寻找一个解决方案,让用户完全退出facebook
@RestController
public class LoginController {

    @Autowired
    private Facebook facebook;

    @Autowired
    private UsrService usrService;

    @RequestMapping(value = "/home/user", method = RequestMethod.GET)
    public Usr findUser() {
        Usr user;

        if (!facebook.isAuthorized()) {
            return null;
        }

        String name = facebook.userOperations().getUserProfile().getName();
        String email = facebook.userOperations().getUserProfile().getEmail();
        byte[] avatar = facebook.userOperations().getUserProfileImage(ImageType.SQUARE);

        user = usrService.find(email);

        // saves the new user
        if (user == null) {
            user = new Usr(email, name, avatar, 0);
            user.setName(name);
            user.setAvatar(avatar);
            user.setLikes(0);
            usrService.save(user);
        }

        return user;
    }
}