http://.../ref/4Q3j9/
クリックするとサインアップページに移動するような紹介URLがあります。Google アカウント [Oauth2] を使用してサインアップできます。それらを隠し変数としてテンプレートに保存します。しかし、ユーザーが Google サインインをクリックすると、それらの値が失われます。とにかく、これらのパラメーターを渡してから、social_auth のリダイレクトに戻ることができますか。パイプラインを使用することを考えましたが、それはログインプロセスの後でのみであり、それまでにそれらのパラメーターが失われます。
2 に答える
ユーザーがログインしたときにdjangoがセッションをクリアするため、セッションに保存するだけでは不十分です。ユーザーがサインアップページに送信されたときにセッションに保存できますが、パイプラインエントリが必要ですのようなもので、 django-social-auth によって行われたリダイレクトがユーザーに送信される前 (認証が完了し、ユーザーがログインしたとき)user.referral = request.session['referral']
をチェックするミドルウェアを使用してセッションに戻します。request.user.referral
定義してみGOOGLE_OAUTH2_AUTH_EXTRA_ARGUMNTS = {'referral': None}
て、Google OAuth2 リンクが?referral=foobar
追加されていることを確認してください。しかし、それは紹介の最初のセッションストレージを回避するだけであり、パイプライン(ただし、今回request.GET['referral']
はセッションではなくチェック)エントリとミドルウェアが必要であり、認証が完了したときにGoogleが紹介を返すかどうかはわかりません.
古い質問ですが、答えられていないので...私はCookieを使用してこれを行い、ビュー関数にCookieを設定しました
response.set_cookie( cookie_name, my_needed_value, max_age=3600)
またはWebページで
document.cookie = 'cookie_name=my_needed_value; expires=Tue, 05 Nov 2014 00:00:00 UTC; path=/'
(有効期限が適切に設定されているか、削除するために過去の日付に設定されています)、ビューで次のように読み取ります
if request.COOKIES.has_key(cookie_name):
my_needed_value = request.COOKIES[cookie_name]