Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/tuyanet.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2021-11-30 16:24:49 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2021-11-30 16:24:49 +0300
commit646a4b966c991986ba71b471da3aaa46c196dcc1 (patch)
tree527dc2ebd4392fbf1a43ecd3aceb9ff3b8596fe1
parent19a141a6e836bd6e3adcade6d87959d692e8a482 (diff)
Token refresh
-rw-r--r--TuyaApi.cs25
1 files changed, 11 insertions, 14 deletions
diff --git a/TuyaApi.cs b/TuyaApi.cs
index bf682a4..f1694fb 100644
--- a/TuyaApi.cs
+++ b/TuyaApi.cs
@@ -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;
}
}