1

今日、私は<cfoauth>ColdFusion 11 のタグを調べていました。私が従った手順:

  1. ローカル サイトの URL ( http://cf11local.com/ )を使用して、Facebook で 1 つのアプリを作成しました。
  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 タグの result 属性で言及されている変数のログイン情報が表示されます。結果属性は構造体になります。
    (あなたは今までこれを達成してきました。辛抱強く待ってくれてありがとう。)
    それでは、質問に答えてください。
  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 に答える