2017-08-24 23 views
0

私はBluemixのCF APIとインターフェースしています。Oauthトークンの有効期限を設定する方法は?

oauth_endpoint = 'https://login.ng.bluemix.net/UAALoginServerWAR/oauth/token' 

http_headers = { 
    'Authorization': 'Basic Y2Y6' 
} 
http_payload = { 
    'grant_type': 'password', 
    'username': user, 
    'password': pw 
} 

response = requests.post(oauth_endpoint, data=http_payload, headers=http_headers) 
results = response.json() 
authorization = results['token_type'] + ' ' + results['access_token'] 

authorized_headers = { 
    'Authorization': authorization 
} 

そしてトークンをリフレッシュするために:私は次のようにOAuthのエンドポイントへの認証

http_refresh_payload = { 
    'grant_type': 'refresh_token', 
    'refresh_token': results['refresh_token'] 
} 

response = requests.post(oauth_endpoint, data=http_refresh_payload, headers=http_headers) 
results = response.json() 
authorization = results['token_type'] + ' ' + results['access_token'] 

authorized_headers = { 
    'Authorization': authorization 
} 

、これらのトークンの有効期限が長く、私が欲しい以上です。期限切れを指定するにはどうすればよいですか?

答えて

0

私はoauthトークンで期限を設定する方法を理解できませんでしたが、別の方法で要件を解決できました。このpostに答えがありました。私は、Flaskセッションオブジェクトを永続化した後、有効期限を設定します。

+1

私は、あなたがユーザーとしてそれを制御できるとは思わない。トークンの期間はUAAサーバーの管理者によって設定されます(ここではグローバル - > https://github.com/cloudfoundry/uaa-release/blob/develop/jobs/uaa/spec#L385-L390)。また、クライアント単位で設定することもできます。あなたは 'cf'クライアントを使用していますが、cfcliで使用するように設計されていて、プラットフォーム管理者によって設定されているため、そこでもカスタマイズすることはできません。基本的には、この作業を行うためにカスタムクライアントを求めたり、何をやっているのか、早急にアクセス/リフレッシュトークンを破棄する必要があります。 –

+0

ポインタをありがとう。はい、これは管理者レベルのことです。 – user2085050

-1

Bluemixログインoauthトークンは1日で失効します。あなたはしばらくしてからrefreshtokenを使うことができます。

+0

私が見ているのは2週間ほどです。 '{ "スコープ":ここで最初の呼び出しからのJSON応答は "OpenIDのuaa.user cloud_controller.read password.write cloud_controller.write"、 "refresh_token": "何とか、何とか"、 "access_tokenは" : "何とか、何とか"、 "JTI": "何とか、何とか"、 "expires_in":1209599、 "TOKEN_TYPE": "無記名" } ' かかわらず、それが一日か二週間だかどうか、私は」有効期限を私がデフォルトで得ているものよりも少なくしたいのです。 – user2085050

関連する問題