Skip to content

Commit 5b1a660

Browse files
committed
feat: refresh token authentication
Adds support for refresh token based authentication
1 parent d646c22 commit 5b1a660

12 files changed

+146
-156
lines changed

Config.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ function Config:setAccessToken(token)
5353
self.token = token
5454
end
5555

56+
function Config:getRefreshToken()
57+
return self.rtoken
58+
end
59+
5660
function Config:getTimeoutInterval()
5761
return tonumber(self.interval) * 60000
5862
end
@@ -76,6 +80,7 @@ function Config:init()
7680
self.type = tostring(self.app:getVariable('Type'))
7781
self.interval = self.app:getVariable('Interval')
7882
self.token = self.app:getVariable('AccessToken')
83+
self.rtoken = self.app:getVariable('RefreshToken')
7984

8085
local storedClientID = Globals:get('netatmo_client_id')
8186
local storedClientSecret = Globals:get('netatmo_client_secret')

Netatmo.lua

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ function Netatmo:new(config)
1414
self.module_id = config:getModuleID()
1515
self.access_token = config:getAccessToken()
1616
self.token = Globals:get('netatmo_atoken', '')
17+
self.refresh_token = config:getRefreshToken()
1718
self.http = HTTPClient:new({})
1819
return self
1920
end
@@ -209,6 +210,13 @@ function Netatmo:auth(callback)
209210
end
210211
return
211212
end
213+
if string.len(self.access_token) > 10 then
214+
if callback ~= nil then
215+
Netatmo:setToken(self.access_token)
216+
callback({})
217+
end
218+
return
219+
end
212220
local data = {
213221
["grant_type"] = 'password',
214222
["scope"] = 'read_station',
@@ -217,6 +225,14 @@ function Netatmo:auth(callback)
217225
["username"] = self.user,
218226
["password"] = self.pass,
219227
}
228+
if string.len(self.refresh_token) > 10 then
229+
data = {
230+
["grant_type"] = 'refresh_token',
231+
["refresh_token"] = self.refresh_token,
232+
["client_id"] = self.client_id,
233+
["client_secret"] = self.client_secret,
234+
}
235+
end
220236
local fail = function(response)
221237
QuickApp:error('Unable to authenticate')
222238
if self.access_token == self.token then

Netatmo_Unified_Sensor-CO2.fqa

Lines changed: 14 additions & 19 deletions
Large diffs are not rendered by default.

Netatmo_Unified_Sensor-Humidity.fqa

Lines changed: 14 additions & 19 deletions
Large diffs are not rendered by default.

Netatmo_Unified_Sensor-Noise.fqa

Lines changed: 14 additions & 19 deletions
Large diffs are not rendered by default.

Netatmo_Unified_Sensor-Pressure.fqa

Lines changed: 14 additions & 19 deletions
Large diffs are not rendered by default.

Netatmo_Unified_Sensor-Rain.fqa

Lines changed: 14 additions & 19 deletions
Large diffs are not rendered by default.

Netatmo_Unified_Sensor-Temperature.fqa

Lines changed: 14 additions & 19 deletions
Large diffs are not rendered by default.

Netatmo_Unified_Sensor-Wind.fqa

Lines changed: 14 additions & 19 deletions
Large diffs are not rendered by default.

Netatmo_Unified_Sensor.fqa

Lines changed: 13 additions & 18 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)