accessTokenExpiresAt static method

DateTime? accessTokenExpiresAt()

Implementation

static DateTime? accessTokenExpiresAt() {
  final String? token = ULocalStorage.getToken();
  if (token == null || token.isEmpty) return null;
  final List<String> parts = token.split(".");
  if (parts.length != 3) return null;
  try {
    String payload = parts[1].replaceAll("-", "+").replaceAll("_", "/");
    payload = payload.padRight(payload.length + ((4 - payload.length % 4) % 4), "=");
    final Map<String, dynamic> claims = jsonDecode(utf8.decode(base64.decode(payload)));
    final dynamic exp = claims["exp"];
    if (exp is! int) return null;
    return DateTime.fromMillisecondsSinceEpoch(exp * 1000, isUtc: true);
  } catch (e) {
    return null;
  }
}