2014-04-21 24 views
0

今天,我一直在尋找於ColdFusion 11 步驟的<cfoauth>標籤我也跟着:ColdFusion 11中<cfoauth>標籤的工作流程應該是什麼?

  1. 我已經創建了Facebook的使用我的本地站點URL(http://cf11local.com/)一個應用程序。
  2. 我得到了客戶端ID和密鑰。
  3. 在Login.cfm我用:

    <cfoauth type="facebook" clientid="***" secretkey="************" result="res" redirecturi="http://cf11local.com/login.cfm" scope=email>

  4. 我已經成功地檢索結構中的格式的所有我的Facebook信息。

現在我的問題是:

  • 我怎麼會檢查每個頁面的特定用戶使用Facebook或者沒有登錄?
  • 我該如何實現註銷功能?

回答

1

Facebook的功能整合到你的網站,你需要按照波紋管提到的步驟:

  1. 提供「登錄通過Facebook」選項
  2. 一旦用戶點擊Facebook登錄按鈕,用戶將如果用戶尚未登錄,則要求登錄Facebook。如果用戶已經登錄,系統會提示用戶使用彈出窗口授予訪問信息的權限。
  3. 一旦用戶給予權限,或者用戶已經授權您的應用程序,用戶將立即重定向到您在oauth標記的redirecturi屬性中指定的重定向url以及oauth標記結果屬性中提到的變量中的登錄信息。結果屬性將是一個結構。
    (你已經達到了這個目標,感謝你的耐心。)
    現在回答你的問題。
  4. 您需要將此結果變量保留在會話範圍內,以便可以在其他頁面的同一會話中接受該變量。您可以使用<cfset Session.fbinfo = #res#>
  5. 之後通過使用cflocation標記將用戶重定向到所需的頁面。
    <cflocation url = "desired page">
  6. 在每一頁上,檢查用戶的登錄信息是否在會話範圍內。如果會話沒有登錄信息,請將其重定向到登錄頁面。
    <cfif (not isdefined('Session.fbinfo'))> <cflocation url = "login page"> </cfif>
    如果會話有登錄信息,那麼用戶可以自由訪問網站。
  7. 用戶註銷後,您需要對會話中存在的訪問令牌進行無效評估。您可以使用InvalidateOauthAccesstoken("access token", "facebook")
  8. 清除會話中的用戶信息。
    <cfset StructClear(Session)>
相關問題