1

今天我正在<cfoauth>研究 ColdFusion 11 的标签。我遵循的步骤:

  1. 我使用我的本地站点 URL ( http://cf11local.com/ ) 在 Facebook 上创建了一个应用程序。
  2. 我得到了客户 ID 和密钥。
  3. 在 Login.cfm 我使用过:

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

  4. 我已经成功地以结构格式检索了我的所有 Facebook 信息。

现在我的问题是:

  • 我将如何检查特定用户是否使用 Facebook 登录的每个页面?
  • 我将如何实现注销功能?
4

1 回答 1

2

要将 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)>
于 2014-10-11T15:50:34.543 回答