У меня возникли проблемы с попыткой реализовать кнопку выхода из системы, используя API Facebook в Spring Social.Как выйти из Facebook с помощью Spring Social
Чтобы выйти из системы, мне нужно вызвать URL-адрес, как я сделал в кнопке входа в систему ниже?
я смог реализовать логин, призывающую к URL «/подключения/фейсбук» следующим образом:
<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>
Также я продлил ConnectController для перенаправления пользователя на главную страницу:
@Controller
public class FacebookController extends ConnectController {
@Inject
public FacebookController(ConnectionFactoryLocator connectionFactoryLocator, ConnectionRepository connectionRepository) {
super(connectionFactoryLocator, connectionRepository);
}
@Override
protected String connectedView(String providerId){
return "redirect:/";
}
}
Я использую AngularJS принести пользователю, если он подключен, ниже моя служба, ответственная за это:
function login() {
var request = $http({
method: "GET",
url: "/home/user"
});
return (request.then(handleSuccess, handleError));
}
И контроллер остальное во внутреннем интерфейсе, чтобы найти или зарегистрировать пользователя:
@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 , но их реализации сильно отличаются от моих.
Спасибо.
Если вы столкнулись с проблемами, как «Нет отображения найденного запроса HTTP/подключения/facebook», вы могли бы попробовать положить следующий ConnectController в вашем диспетчерскую-servlet.xml: <бобы: фасоль class = "org.springframework.social.connect.web.ConnectController"> – Yuci
Разве это просто отключает приложение от facebook или полностью выходит из системы из facebook? т. Е. Если пользователь обратится к www.facebook.com, пользователь попросит вас снова войти в систему? Я ищу решение, которое полностью выводит пользователя из Facebook – dozer