ColdFusion 11中<cfoauth>标记的工作流程应该是什么?</cfoauth>

时间:2014-04-21 17:58:28

标签: facebook oauth coldfusion coldfusion-11

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

  1. 我使用我的本地网站网址(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信息。

  5. 现在我的问题是:

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

1 个答案:

答案 0 :(得分:1)

要将Facebook功能集成到您的网站中,您需要按照下面提到的步骤进行操作:

  1. 提供“通过Facebook登录”选项
  2. 一旦用户点击Facebook登录按钮,如果用户尚未登录,将要求用户登录Facebook。如果用户已登录,将提示用户弹出窗口以授予访问权限信息。
  3. 一旦用户授予权限或用户已经授权您的应用,用户将立即被重定向到您在oauth标记的redirecturi属性中指定的重定向网址以及oauth标记的结果属性中提到的变量中的登录信息。 result属性将是一个struct。
    (到目前为止你已经实现了这一点。感谢您的耐心等待。)
    现在回答您的问题。
  4. 您需要将此结果变量保留在会话范围中,以便可以在其他页面的同一会话中加入。您可以使用<cfset Session.fbinfo = #res#>
  5. 执行此操作
  6. 之后,使用cflocation标记将用户重定向到所需的页面。
    <cflocation url = "desired page">
  7. 在每个页面上,检查用户的登录信息是否在会话范围内。如果会话没有登录信息,请将其重定向到登录页面。
    <cfif (not isdefined('Session.fbinfo'))> <cflocation url = "login page"> </cfif>
    如果会话有登录信息,用户可以自由访问网站。
  8. 用户退出后,您需要使会话中存在的访问令牌无效。您可以使用InvalidateOauthAccesstoken("access token", "facebook")
  9. 执行此操作
  10. 清除会话中的用户信息。
    <cfset StructClear(Session)>
相关问题