1
我有一個ASP.NET MVC 4應用程序,允許用戶使用Gmail等外部服務登錄。使用oauth從外部登錄服務(Gmail,臉書)註銷
到目前爲止,用戶可以在應用程序內部登錄和導航。但問題是在註銷。我有一個註銷該請求的按鈕,在我的AccountController
中調用控制器操作LogOff()
。在該方法中,如果用戶通過oauth進行身份驗證,如何註銷?
本地帳戶,我用:
public ActionResult LogOff()
{
WebSecurity.Logout();
return RedirectToAction("Login", "Account");
}
但通過OAuth我沒有看到類似的事情...... 我想我需要清除某種餅乾的,但我不知道如何...
你在哪裏以及如何添加這個,即時消息總共mvc noob(3小時)添加這個,因爲我有完全相同的問題 – Slartibartfast
@Slartibartfast您可以在'
WebSecurity.Logout();
將註銷用戶,即使他們通過OAuth進行身份驗證。如果你想確保令牌註銷後不會保留你可以調用
Session.Remove("facebooktoken"); //Facebook example
的信息是從this網頁。還有一些值得一讀的細節。
來源
2013-06-05 20:18:50 James
謝謝,但刪除會話值的解決方案沒有工作...當我登出我的應用程序,並嘗試登錄與另一個帳戶我不能,我直接用以前的帳戶登錄.. 。但是,如果我註銷,例如,在Facebook頁面中,我可以使用另一個帳戶登錄...並且Google服務在ExtraData中默認沒有該令牌... – amp
好的,所以你想要能夠從您的應用中清除第三方Cookie?如果您想添加登錄方法,您可以在帳戶管理頁面中關聯其他帳戶。 – James
是的,我認爲清理cookie應該可以解決問題......我該怎麼做?你有一些基本的例子嗎? – amp
聽起來像您想要將用戶從源驗證站點註銷?只有認證站點才能刪除/修改其Cookie。
解決方案是將用戶重定向到身份驗證站點的註銷頁面,或者使用API腳本將用戶註銷(如果該站點存在)。您可以使用帶有「目標」屬性打開一個新窗口,如果你不希望主瀏覽器窗口重定向。
臉譜,例如,有一個API調用:
FB.logout(function(response) { // user is now logged out });
的MVC Facebook的客戶端有一個方法
GetLogoutUrl
,也返回你可以在服務器端使用的URL。來源
2013-06-11 04:06:42