fromMap static method

Token fromMap(
  1. Map? map
)

Implementation

static Token fromMap(Map? map) {
  if (map == null) throw new Exception("No token from received");
  //error handling as described in https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow#error-response-1
  if (map["error"] != null)
    throw new Exception("Error during token request: " +
        map["error"] +
        ": " +
        map["error_description"]);

  Token model = new Token();
  model.accessToken = map["access_token"];
  model.idToken = map["id_token"];
  model.tokenType = map["token_type"];
  model.expiresIn = map["expires_in"] is int
      ? map["expires_in"]
      : int.tryParse(map["expires_in"].toString()) ?? 60;
  model.refreshToken = map["refresh_token"];
  model.issueTimeStamp = new DateTime.now().toUtc();
  model.expireTimeStamp = map.containsKey("expire_timestamp")
      ? DateTime.fromMillisecondsSinceEpoch(map["expire_timestamp"])
      : model.issueTimeStamp!
          .add(new Duration(seconds: model.expiresIn! - model.expireOffSet));
  return model;
}