namespace IStation.DataDockingApi
{
///
/// Token
///
public class TokenHelper
{
private static DateTime _lastTokenTime;
private static string _token = null;
//获取Token
private static string GetToken()
{
var result = HttpRequestHelper.Login();
if (result == null)
{
return default;
}
if (result.status != "SUCCESS")
{
var json = JsonHelper.Object2Json(result);
LogHelper.Info(json);
return default;
}
return result.content.token;
}
//验证过期时间
private static bool Verify()
{
var appParas = AppParasHelper.Get();
if (_lastTokenTime.AddHours(appParas.expire) < DateTime.Now)
{
return false;
}
return true;
}
///
/// 获取 (验证过期时间,使用缓存token)
///
public static string Get()
{
if (string.IsNullOrEmpty(_token))
{
_token = GetToken();
_lastTokenTime = DateTime.Now;
}
if (!Verify())
{
_token = GetToken();
_lastTokenTime = DateTime.Now;
}
return _token;
}
///
/// 重新获取 (不做任何验证,重新获取token,之后更新缓存)
///
public static string GetAgain()
{
_token = GetToken();
_lastTokenTime = DateTime.Now;
return _token;
}
}
}