簡體   English   中英

如何通過gem OmniAuth Facebook / Twitter注銷社交網站

[英]How to log out social sites via gem OmniAuth Facebook/Twitter

我正在使用omniauth-facebookomniauth-twitter gems來啟用通過Facebook,Twitter登錄。

一切正常,我能夠使用OAuth驗證用戶。 這里的BIG問題是,當用戶從我的應用程序注銷時,它不會從他們認證的社交網站注銷,這很危險。

我想添加一個功能,將破壞兩個地方的會話,即我的應用程序和相應的社交網站。 我怎么做? 是否可以使用我目前使用的omniauth gems 或者是否有可用於實現此目的的替代gem / API?

在我看來,問題是我們不知道用戶的意圖。 如果用戶從您的應用程序注銷並且他們沒有其他標簽打開Facebook,然后他們離開計算機,認為他們已經完成但是讓瀏覽器打開,那么是的,這將是糟糕的。 另一方面,如果他們在Facebook上有另一個標簽,如果他們退出你的應用程序,然后切換到期望繼續使用Facebook的其他標簽,他們將會生氣。 你可能會說,討厭的人比讓他們不知不覺地登錄Facebook更好 - 我一般都同意!

如果您正在處理登錄流服務器端,我不知道這樣做的好/官方方式。 有人建議建立一個正常的Facebook網址 - 請參閱https://stackoverflow.com/a/8765863 - 我想你可以重定向到那個並重新定向,如果這種方法仍然有效(這是一個老答案),但它感覺很脆弱正如用戶所暗示的那樣

如果你使用的是javascript api,那就是FB.logout函數:

https://developers.facebook.com/docs/reference/javascript/FB.logout/

和/或使用auto_logout_link參數自動顯示注銷按鈕而不是登錄按鈕:

https://developers.facebook.com/docs/plugins/login-button/

涵蓋用戶意圖場景的一個選項是使用正常的注銷按鈕顯然會殺死應用程序的會話,當他們點擊它時,重定向到一個“從Facebook注銷?”的頁面。 按鈕 - 可能使用帶有auto_logout_link參數的javascript登錄按鈕。 然后,如果他們已完成計算機,他們可以從Facebook注銷,或者如果他們在另一個選項卡中打開Facebook並且想繼續使用它,則選擇不點擊它。

我相信你知道,omniauth-facebook支持服務器端和客戶端登錄流程。

我不確定omniauth-twitter是否可以使用它 - 我沒有相關經驗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM