forked from community/device-mgt-plugins
Merge pull request #735 from Savidude/master
Auto renewal of auth token for RaspberryPi agentrevert-dabc3590
commit
d7b8e32744
@ -0,0 +1,53 @@
|
||||
import json
|
||||
import urllib
|
||||
import iotUtils
|
||||
import requests
|
||||
|
||||
|
||||
applicationKey = None
|
||||
refreshToken = None
|
||||
filename = "deviceConfig.properties"
|
||||
|
||||
|
||||
class RefreshToken():
|
||||
|
||||
def post(self, url, payload, appKey):
|
||||
headers = { 'Authorization' : 'Basic ' + appKey, 'Content-Type' : 'application/x-www-form-urlencoded' }
|
||||
baseUrl = iotUtils.HTTP_EP + url
|
||||
response = requests.post(baseUrl, params=payload, headers=headers);
|
||||
return response
|
||||
|
||||
def read_server_conf(self):
|
||||
with open(filename, 'r') as outfile:
|
||||
conf_file = outfile.readlines()
|
||||
|
||||
return conf_file
|
||||
|
||||
def updateFile(self, response):
|
||||
newRefreshToken = response['refresh_token']
|
||||
newAccessToken = response['access_token']
|
||||
|
||||
with open(filename, 'r+') as f:
|
||||
lines = f.readlines()
|
||||
f.seek(0)
|
||||
f.truncate()
|
||||
for line in lines:
|
||||
if line.__contains__("auth-token="):
|
||||
line = "auth-token=" + newAccessToken + "\n"
|
||||
if line.__contains__("refresh-token="):
|
||||
line = "refresh-token=" + newRefreshToken + "\n"
|
||||
f.write(line)
|
||||
|
||||
|
||||
def updateTokens(self,):
|
||||
global applicationKey
|
||||
global refreshToken
|
||||
refreshToken = iotUtils.REFRESH_TOKEN
|
||||
applicationKey = iotUtils.APPLICATION_KEY
|
||||
|
||||
params = urllib.urlencode({"grant_type": "refresh_token", "refresh_token": refreshToken,
|
||||
"scope": "Enroll device"})
|
||||
data = self.post("/token", params, applicationKey)
|
||||
response = json.loads(data)
|
||||
self.updateFile(response)
|
||||
return response
|
Loading…
Reference in new issue