2

私は python-social-auth を使用しており、Facebook アカウントでユーザーを正常に認証できますが、メールのみが保持されます。方法:

  1. 誕生日を守りますか?
  2. 彼のペットの名前など、FB から来ていない情報を追加して永続化しますか? (私が知る限り、パイプラインを使用する必要がありますが、方法はわかりません)

どんな助けでも大歓迎です。

前もって感謝します!

PS: 十分な評判を持っている人は、タグ「python-socialauth」を作成しますか?

4

1 に答える 1

2

生年月日の永続性は を定義するのと同じくらい簡単でSOCIAL_AUTH_FACEBOOK_EXTRA_DATA = [('birthdate', 'birthdate')]、後で を実行することでアクセスできますuser.social_auth.get(provider='facebook').extra_data['birthdate']

他のデータはパイプラインで保存する必要がありますが、これはそれほど単純ではありませんが、難しくはありません。パイプラインは、認証プロセス中に呼び出される関数です (サインアップ、ログイン、または関連付けであっても、関数は必要に応じてそれを確認する必要があります)。関数は、 、 、 、 、 、 などの多くのパラメーターを取得strategybackendますsocialuser必要responserequestsパラメーターdetailsを定義してから、 を使用**kwargsして他のパラメーターを無視するのが最善です。

関数がコード化されたら、SOCIAL_AUTH_PIPELINE設定に追加する必要があります (必ずデフォルトのエントリも追加してください。そうしないと、認証プロセスが機能しません。これらはhttp://psa.matiasaguirre.net/docs/pipeline. html#authentication-pipeline )。

于 2013-10-27T15:36:31.190 に答える