3

У меня возникли проблемы с попыткой реализовать кнопку выхода из системы, используя 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 , но их реализации сильно отличаются от моих.

Спасибо.

ответ

2

Для тех, кто, возможно, был с той же проблемой, то я сделал:

Я дал еще один взгляд на весеннем социальной документации и выяснил, что мне просто нужно сделать запрос DELETE на "/подключения/Facebook '.

Это находится в разделе 4.3.4

+0

Если вы столкнулись с проблемами, как «Нет отображения найденного запроса HTTP/подключения/facebook», вы могли бы попробовать положить следующий ConnectController в вашем диспетчерскую-servlet.xml: <бобы: фасоль class = "org.springframework.social.connect.web.ConnectController"> – Yuci

+0

Разве это просто отключает приложение от facebook или полностью выходит из системы из facebook? т. Е. Если пользователь обратится к www.facebook.com, пользователь попросит вас снова войти в систему? Я ищу решение, которое полностью выводит пользователя из Facebook – dozer

 Смежные вопросы

  • Нет связанных вопросов^_^