0

我已經設置了一個測試MVC站點,並且配置爲使用Facebook的身份驗證系統登錄用戶。一旦用戶退出我的系統,我如何確保用戶登錄到Facebook時發生了正確的事情(即,他們恢復到訪問我的網站前登錄的任何狀態od)?使用Facebook的oAuth服務可以在訪問我的網站後不讓用戶登錄Facebook嗎?

我依靠可通過NuGet下載的FB API包裝。

我看到的幾個例子包括一個可以通過API調用的Facebook註銷方法,讓FB知道用戶已經註銷我的網站,我認爲這應該是「做正確的事」。但是,該方法似乎已從庫中(以及從API?)中刪除。

有沒有其他方法我應該打電話,爲了「正確的事情」發生?或者,或者,人們使用某種解決方法?

它讓人們用他們的FB登錄訪問我的網站看起來有點不真誠,只是讓他們在他們從我的網站註銷後悄悄地保持登錄到FB。

以下使用的解決方法(手工製作註銷URL)。請注意您的網址編碼

回答

1

根據Facebook's developer TOS(第6項),當用戶註銷您的網站(並使用Facebook登錄)時,您需要將用戶從Facebook註銷。

考慮以下用例:

用戶通過公用計算機(庫)訪問你的網站,並選擇登陸(使用Facebook登錄)來訪問不可未登錄誰的用戶限制功能的。用戶開展業務,然後註銷。如果您沒有將他們從Facebook註銷,他們的帳戶現在可以在公共計算機上使用,因此如果新用戶在初始用戶離開後使用公用計算機,則新用戶可以訪問初始用戶的Facebook信息。

不確定的NuGet,但使用Facebooks PHP SDK,你只需要調用Facebook的logout功能應該生成下一個PARAM,和一的access_token URL。所以當用戶點擊註銷鏈接時,他們將被重定向到Facebook,註銷,然後重定向到您的站點以完成註銷過程。

例退出鏈接:

https://www.facebook.com/logout.php?next=http%3a%2f%2fextapi.yourhost.com%2flogout&rd=http%3a%2f%2fyourhost.com%2flogout&access_token=AAACRZBIZAGE18BAEyQ8AcmRKGGtmeYlw4MFYjuDHfTlZBSZA3pZAJ5xnKABELBmkOroaxlDsoPgFVHPvvkfZAFRQarCRL0Fhy7UrZCAZAfRFtvwBo4lY4s4X

解釋:

  • 下:這是用戶將被重定向到它們被登出的Facebook的後鏈接(這將是域您已在Facebook上註冊)
  • rd:這是一個任意的url參數,所以當用戶重定向回我的網站時,我可以將它們重定向回另一個登錄頁面(註銷除外頁)。
  • 的access_token:是由Facebook的生成時的access_token你
+0

登錄的用戶我試過重定向到其遵循的格式,但沒有成功(用戶沒有註銷的Facebook的註銷鏈接,並之後沒有重定向回我的網站) – blueberryfields 2012-01-11 17:38:43

+0

如果您傳遞給註銷的access_token與用戶登錄時創建的access_token不匹配,Facebook將不會登錄用戶。您使用的是Facebook的PHP Api('getLogoutUrl')或創建自己的鏈接? – 2012-01-11 17:54:27

+0

我使用訪問令牌的存儲副本自己創建鏈接 – blueberryfields 2012-01-11 18:59:12

相關問題