3

我在嘗試在Spring Social中使用Facebook API實現註銷按鈕時遇到問題。如何使用Spring Social從Facebook註銷

要註銷,我必須像在我的登錄按鈕中那樣調用URL嗎?

我能夠實現登錄調用URL「/連接/ 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> 

我也延長了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請求映射/連接/臉譜」,你可以嘗試把以下ConnectController在調度-servlet.xml中:<豆類:豆類class =「org.springframework.social.connect.web.ConnectController」> – Yuci

+0

這是否只是斷開應用程序從Facebook或從Facebook完全註銷用戶? 即,如果用戶訪問www.facebook.com,用戶是否會被要求再次登錄? 我正在尋找一個解決方案,將用戶完全註銷Facebook – dozer