3

Facebook経由でユーザーをphpサイトにログインさせるために、ハイブリッド認証を使用しています。

$hybridauth = new Hybrid_Auth( $config );
$facebook = $hybridauth->authenticate( "Facebook" );

$facebook_user_profile = $facebook->getUserProfile();

($configアプリの ID と秘密鍵が含まれています)

これはすべてうまく機能していますが、ログインしたページに基づいてコールバック URL に戻ったときにユーザーをリダイレクトして、ログイン後にこの場所に戻すことができるようにしたいと考えています。

プロセスの反対側でそれらを読み取って、認証要求が開始された場所を知ることができるように、認証 (URL や単純な ID など) でカスタム変数を送信する方法はありますか?

これは可能ですか、それとも間違ったツリーを吠えていますか?

ハイブリッドを使用してこれを行う方法を誰かが知っている場合は、さらに称賛しますが、私を正しい軌道に乗せる提案は大歓迎です。

4

4 に答える 4

7

サーバー側またはクライアント側のログインが使用されるときはいつでも、最終的なランディングは FB ログイン ダイアログ URL で行われます。

フローを理解するには、 FB ログイン アーキテクチャのサーバー側ログインを参照してください。

ログインURLは次のようになります

https://www.facebook.com/dialog/oauth?
client_id=YOUR_APP_ID&
redirect_uri=YOUR_REDIRECT_URI&
state=SOME_ARBITRARY_BUT_UNIQUE_STRING

ここでパラメータに任意の URL をredirect_url指定できます。ログイン フローの後、Facebook は指定された URL にリダイレクトしようとします。指定する URL は、アプリの設定で指定したのと同じベース ドメインの URL である必要があります。

また、ログイン後に使用できる追加データを保持する必要がある場合は、stateparam を使用できます。このパラメーターに指定した値は、変更なしで返されます。

HybridAuth コードを検索すると、これらの詳細を渡す必要がある場所を見つけることができると思います。

于 2013-02-27T07:59:53.123 に答える
3

2 つの簡単なオプションを考えることができます。

GET パラメーター: カスタム変数を GET パラメーターとしてコールバック URL に埋め込みます。(データを URL エンコードすることを忘れないでください)

セッション: 認証方法を開始する前に、ユーザー権利のセッションでカスタム変数を設定します。

于 2013-02-25T15:04:06.750 に答える
1

に渡さredirect_urlれていることを確認してください$config

または、セッションと Cookie を設定した後、関数header()でphp を使用できます。login()例えば:

header("Location: http://www.example.com/some/where/else"); /* Redirect */

それがあなたを助けることを願っています。ありがとう。

于 2013-03-02T18:31:28.657 に答える
0

Facebook は、開発者がセッション変数を使用することを推奨しています。stateパラメータはCSRF用に予約/意図されています

https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/#token

于 2017-01-07T07:18:12.683 に答える