2016-05-11 4 views
0

私はボトルのセッションクッキーを必要とするページにリダイレクトする方法のアドバイスを探しています。特定のサービスの正しいユーザ名とパスワードが与えられた場合、ログインしたこの外部サービスに自動的にリダイレクトされるようにしたいと思っています。ボトルのセッションクッキーを必要とするページにリダイレクト

私は、サーバ側にログインし、リダイレクトURL認証のためのセッションクッキー。私は

bottle.redirect(redirect_object['url']) 

を使用してリダイレクトしようとすると、私は私のブラウザでセッション情報を持っていないと私ははっきりログインしているユーザーとしてログインページに代わりのホームページに送信されます

with requests.session() as s: 
    r = s.post("https://someservice.com/Account/LogOn", 
       data=payload) 

    redirect_object = {'url':r, 'session':s} 
    return redirect_object 

ホームページにリダイレクトされたときにこのセッション情報を渡すにはどうすればよいですか?これは可能ですか?

答えて

0

postの応答はURLではありません。タイプはrequests.models.Responseです。

bottle.redirectは、requests.models.Responseオブジェクトではなく、URL(文字列)を受け取ります。

アプリケーションが十分に簡単である場合は、おそらくあなたは自分のポストログインページをハードコーディングして逃げることができます。

bottle.redirect('http://example.com/home') 

そうでない場合は、URLを抽出する方法を参照してくださいログインサービスのAPIのドキュメントを参考にしてください彼らの反応から。たとえば、「url」フィールドを含むjsonを返します。デコードする必要があります。

resp = s.post(...) 
resp_dict = json.loads(resp.content) 
bottle.redirect(resp_dict['post_auth_url']) 
関連する問題