diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2021-11-30 16:24:49 +0300 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2021-11-30 16:24:49 +0300 |
commit | 646a4b966c991986ba71b471da3aaa46c196dcc1 (patch) | |
tree | 527dc2ebd4392fbf1a43ecd3aceb9ff3b8596fe1 | |
parent | 19a141a6e836bd6e3adcade6d87959d692e8a482 (diff) |
Token refresh
-rw-r--r-- | TuyaApi.cs | 25 |
1 files changed, 11 insertions, 14 deletions
@@ -190,25 +190,22 @@ namespace com.clusterrr.TuyaNet }
/// <summary>
- /// Requests access token.
- /// </summary>
- /// <returns>Access token.</returns>
- private async Task<TuyaToken> GetAccessTokenAsync()
- {
- var uri = "v1.0/token?grant_type=1";
- var response = await RequestAsync(Method.GET, uri, noToken: true);
- var token = JsonConvert.DeserializeObject<TuyaToken>(response);
- return token;
- }
-
- /// <summary>
/// Refreshes access token if it's expired or not requested yet.
/// </summary>
private async Task RefreshAccessTokenAsync()
{
- if ((token == null) || tokenTime.AddSeconds(token.ExpireTime) >= DateTime.Now)
+ if (token == null)
+ {
+ var uri = "v1.0/token?grant_type=1";
+ var response = await RequestAsync(Method.GET, uri, noToken: true);
+ token = JsonConvert.DeserializeObject<TuyaToken>(response);
+ tokenTime = DateTime.Now;
+ }
+ else if (tokenTime.AddSeconds(token.ExpireTime) >= DateTime.Now)
{
- token = await GetAccessTokenAsync();
+ var uri = $"v1.0/token/{token.RefreshToken}";
+ var response = await RequestAsync(Method.GET, uri, noToken: true);
+ token = JsonConvert.DeserializeObject<TuyaToken>(response);
tokenTime = DateTime.Now;
}
}
|