簡體   English   中英

Facebook Javascript SDK-如何與ASP.NET MVC登錄綁定?

[英]Facebook Javascript SDK - How to tie with ASP.NET MVC Login?

我有一個ASP.NET MVC4 Web應用程序,並且我想使用Facebook來驗證用戶身份。

我的計划是讓用戶“注冊” Facebook,然后使用它登錄。

現在,當用戶訪問該站點並使用我設置的Facebook登錄按鈕登錄時,這很好,該按鈕通過/ Account / FacebookLogin操作進行。 在該操作中,我可以獲取Auth令牌,並對照SQL數據庫進行檢查,然后使用我存儲在數據庫中的所有額外字段/信息對用戶進行身份驗證(這是一個基於網絡的游戲,因此角色名稱等)...

現在,如果用戶來到我的網站並且已經登錄到Facebook,則顯然他們不會執行該/ Account / FacebookLogin操作...我只是可以通過以下方式訪問auth令牌

FB.getLoginStatus(function (response) {
        if (response.status === 'connected') {
            var accessToken = response.authResponse.accessToken;
            //alert("User is logged in");
        }
        else if (response.status === 'not_authorized') {
            //alert("User is not authorised");
        }
        else {
            //alert("User is not connected to Facebook");
        }

    });

我的問題是...如何在“如果已連接”代碼中授權用戶,而無需將他們發送到無限循環中,該怎么辦? 我嘗試將它們重定向到/ Account / FacebookLogin操作並傳遞auth令牌等。但是在每個頁面上都會調用getLoginStatus回調...因此它們陷入了無限循環。

Facebook已授予您訪問某人的Facebook身份的權限。 您現在可能要為該身份創建一個用戶帳戶。 一旦該用戶擁有一個帳戶,那么您就需要讓該用戶對您的應用程序進行身份驗證(如果您希望將自己與Facebook綁定,則可以使用Facebook身份進行此操作)。 然后,您可以授權該用戶在您的應用程序中執行某些操作。

在MVC的上下文中,您可以非常簡單地向它們頒發表單身份驗證令牌:

var username = response.authResponse.name; // <- check the syntax on this
FormsAuthentication.SetAuthCookie(username, true);
return this.RedirectToAction("Index", "AuthorizedUsersOnlyController");

暫無
暫無

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

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