· 7 years ago · Mar 08, 2018, 09:56 PM
1saeka@triserver:/srv/api$ cat common/maint/eve/refresh.py
2# refresh an eve api token
3
4def refresh_token(old_rtoken):
5
6 from requests_oauthlib import OAuth2Session
7 import oauthlib.oauth2
8 import common.credentials.eve as _eve
9 import common.logger as _logger
10
11 base_url = 'https://login.eveonline.com'
12 token_url = base_url + '/oauth/token'
13 base_auth_url = base_url + '/oauth/authorize'
14 redirect = _eve.redirect_url
15
16 # special headers to fix an sso bug
17
18 headers = {'Accept': 'application/json', 'Content-Type': 'application/x-www-form-urlencoded'}
19
20 extra = {
21 'client_id': _eve.client_id,
22 'client_secret': _eve.client_secret,
23 }
24
25 eve = OAuth2Session(
26 client_id=_eve.client_id,
27 token=old_rtoken,
28 )
29 try:
30 result = eve.refresh_token(
31 token_url,
32 redirect_uri=redirect,
33 refresh_token=old_rtoken,
34 headers=headers,
35 **extra,
36 )
37
38 except Exception as error:
39 # there are a rather large amount of exceptions
40
41 exception_type = type(error).__name__
42 return exception_type, error
43
44 return result, True